2014-03-04 37 views
1

我有一個帶有HiddenField的ItemTemplate的GridView控件。將GridView中的HiddenField的值設置爲新的GUID

<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

您可以嘗試

<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> 

您必須添加# Inline編碼。例如:'<%# //code here %>'和 您正在設置HiddenField1value,因此您不需要使用Response.Writevalue應該是Value='<%# Guid.NewGuid().ToString() %>'。希望這會做

2

在代碼中你可以得到背後GUID如下。

HiddenField HiddenField1 = (HiddenField)row.FindControl("HiddenField1"); 
Guid guid1; 
Guid1.TryParse(HiddenField1.Value, out guid1); 

設置值,你可以使用

HiddenField1.Value = guid1.ToString(); 
+0

所以它不能內聯?另外,我忘了提及它是一個.ascx用戶控件。 –

+0

我還沒有嘗試過使用傾斜編碼,對不起! – MusicLovingIndianGirl

+0

我會使用OnRowCreated事件爲後面的代碼中的每一行設置HiddenField嗎? –

相關問題