如何将DB字段解析为gridview asp:TemplateField

时间:2012-09-02 13:09:55

标签: c# asp.net asp.net-mvc-3 gridview

我有一个包含字段JsonPreview

的数据库记录

格式化:{Name:"bla bla", ImageUrl:"www.myimago.gif"}

我想将此数据拆分为gridView表中的两列

我该怎么做?

<asp:TemplateField  HeaderText="Name">
<ItemTemplate>
      <asp:Image ID="ItemImage" runat="server" ImageUrl="<%# DataBinder.Eval(Container.DataItem, JsonPreview.ImageUrl)) %>" />
</ItemTemplate>
 </asp:TemplateField>   

1 个答案:

答案 0 :(得分:0)

您可以将代码分成两个字段作为

// Let I have two properties on my page as
 protected string ImageUrl { get; set; }
protected string Name { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    // Suppose I have the value in a string variable val
   string val = " {Name:'bla bla', ImageUrl:'www.myimago.gif'}";

   // Split them using String.Split function
   string[] array = val.Split(',');
   ImageUrl = array[1].Replace('}',' ');
   Name = array[0].Replace('{',' ');   

}

// aspx source code

<%= Name %>        // Output: Name:'bla bla' 
<%= ImageUrl %>    // Output: ImageUrl:'www.myimago.gif'

或者,如果您只想要ImageURL,那么您只能从SQL查询中返回ImageURL

Declare @var varchar(50)
set @var = '{Name:"bla bla", ImageUrl:"www.myimago.gif"}'

select SUBSTRING(@var, CHARINDEX('ImageUrl:',@var,0) ,LEN(@var) - CHARINDEX('ImageUrl:',@var,0)) as [Image URL]

// Output: ImageUrl:"www.myimago.gif"