将GridView中隐藏字段的值设置为新GUID

时间:2014-03-04 04:29:51

标签: c# asp.net gridview guid

我有一个带有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并执行代码而不是将其解释为文字。我尝试过使用单引号和双引号“。

2 个答案:

答案 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.Writevalue应为Value='<%# Guid.NewGuid().ToString() %>'。希望这样做