ASP.. NET动态数据图像字段模板



我与动态数据发生了一场小冲突。我有一个自定义数据库图像字段模板,允许用户上传和编辑图像,其中插入工作,但更新不。我可以通过删除来进行更新工作,如果插入模式围绕uri设置在以下代码中(在dbimage_edit . asx .cs中):

protected override void ExtractValues(IOrderedDictionary dictionary)
{
  ...
  dictionary["contenttype"] = "image/" + imgext;
  dictionary["filecontents"] = new System.Data.Linq.Binary(FileUploadEdit.FileBytes);
  if (Mode == DataBoundControlMode.Insert)
  {
    dictionary["uri"] = imgname + "_" + DateTimeOffset.Now.Ticks.ToString() + "." + imgext;
  }
  ...
}
回顾一下,当编辑时,如果uri被设置为与DB中的先前值不同的值,则新图像上传成功。如果uri与DB中的前一个值相同,即使filecontentscontenttype更改了,SQL Server也不会得到消息。

元数据:

...
[DisplayName("Uri")]
[ScaffoldColumn(true)]
[Required]
public object uri { get; set; }
[DisplayName("Graphic")]
[ScaffoldColumn(true)]
[UIHint("DBImage")]
public object filecontents { get; set; }
...

我还删除了UpdateCheck,但这似乎并没有改变行为:

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_filecontents", DbType="VarBinary(MAX)")] //, UpdateCheck=UpdateCheck.Never
public System.Data.Linq.Binary filecontents
  {
    get
    {
...

(参见注释掉的UpdateCheck=UpdateCheck。从来没有上图)

亲切的问候,约旦

我放了一个星期,回来后很容易就解决了。有时候你只是需要出去走走,不要过多地考虑这些事情。

问题是缓存。我通过在OnDataBinding中添加nocache参数来更改图像处理程序url:

老:

ImageEdit.ImageUrl = "http://localhost/WebServices.CAD/ImageHandler.ashx?uri=" + row.uri;
新:

ImageEdit.ImageUrl = "http://localhost/WebServices.CAD/ImageHandler.ashx?nocache=" + System.DateTime.Now.Ticks.ToString() + "&uri=" + row.uri;

按设计工作

相关内容

  • 没有找到相关文章

最新更新