我有一个带有ItemTemplate的GridView控件,它有一个HiddenField。
<asp:GridView ID="GridView1" runat="server" ...>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField runat="server" ID="HiddenField1" Value='<% Response.Write(Guid.NewGuid()) %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
问题是它实际上正好呈现<% Response.Write(Guid.NewGuid()) %>
而不是Guid。如何将值设置为Guid并执行代码而不是将其解释为文字。我尝试过使用单引号和双引号“。
答案 0 :(得分:2)
您可以获取代码中的GUID,如下所示。
HiddenField HiddenField1 = (HiddenField)row.FindControl("HiddenField1");
Guid guid1;
Guid1.TryParse(HiddenField1.Value, out guid1);
要设置该值,您可以使用
HiddenField1.Value = guid1.ToString();
答案 1 :(得分:2)
你可以尝试
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField runat="server" ID="HiddenField1" Value='<%# Guid.NewGuid().ToString() %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
您必须在内联编码中添加#
。例如:'<%# //code here %>'
和
您正在设置HiddenField1
value
,因此您无需使用Response.Write
。 value
应为Value='<%# Guid.NewGuid().ToString() %>'
。希望这样做