首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FormView + fileupload -我可以基于文件上传更改绑定字段吗?

FormView + fileupload -我可以基于文件上传更改绑定字段吗?
EN

Stack Overflow用户
提问于 2009-07-15 16:02:05
回答 2查看 1.7K关注 0票数 0

我在ASP.NET 2.0应用程序中有一个FormView控件。我让数据库在一个列中存储一个文件名(一个人的照片)。我不能将列的值绑定到fileupload控件上,所以我尝试使用隐藏的表单字段。这就是我所拥有的:

代码语言:javascript
复制
<asp:HiddenField ID="pictureLink" runat="server" Value='<%# Bind("pictureLink") %>' />
<asp:FileUpload ID="pic" runat="server" />

代码隐藏:

代码语言:javascript
复制
//ItemUpdating event handler
void do_update(object sender, FormViewUpdateEventArgs e)
{
    FileUpload newpic = (FileUpload)profile_edit.FindControl("pic");
    if (newpic.HasFile)
    {
      //do a bunch of file uploading "stuff" which makes a new file name
      e.Keys["pictureLink"] = new_filename;
    }
}

我的目标是将隐藏的表单字段的值更新为新更新的文件名,以便正确更新数据库。

我想我已经很接近了--但是我似乎不能在事后通过编程改变任何绑定的数据字段。

我尝试过使用javascript来更改控件--但新的文件名实际上与他们上传的文件名不同;哪个javascript不一定能“预测”并可靠地将正确的文件名放入隐藏的表单字段中

有什么建议吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-15 16:17:57

好的--我在发布问题后不久就找到了答案。我会让它开放,以防有人有更好(更优雅)的解决方案。基本上,我更改了do_update事件处理程序来拦截文件上传。如果有文件,则编辑NewValues集合,以便数据库接收新的文件名而不是旧的文件名。

代码语言:javascript
复制
//ItemUpdating event handler
void do_update(object sender, FormViewUpdateEventArgs e)
{
    FileUpload newpic = (FileUpload)profile_edit.FindControl("pic");
    if (newpic.HasFile)
    {
      //do a bunch of file uploading "stuff" which makes a new file name
      //HERE IS THE CHANGE - update the newvalues object to the new file name
      e.NewValues[1] = new_filename;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2009-07-15 16:13:11

我认为你可能需要修改e.NewValues,而不是e.Keys。看看NewValues property on MSDN,它可能会给你指明正确的方向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1132334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档