2016-01-22 76 views
1

我有一個具有隱藏字段持有ID的網絡表格的網格視圖,如何從我的更新語句中使用的ID字段捕獲數據?這是我的語法看起來像...
HTML
從網格視圖更新數據庫複選框

<asp:GridView runat="server" ID="gridview2" AutoGenerateColumns="false" > 
<Columns> 
<asp:BoundField DataField="weekofyear" HeaderText="Week" /> 
<asp:BoundField DataField="supportname" HeaderText="Name" /> 
<asp:BoundField DataField="supid" HeaderText="SupportIDName" Visible="false"/> 
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="TicketCompleted" runat="server" AutoPostBack="true" OnCheckedChanged="TicketCompletedCompleted_Click" Checked='<%# Convert.ToBoolean(Eval("TicketCompleted")) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
</Columns> 

C#

protected void TicketCompleted_Click(object sender, EventArgs e) 
{ 
foreach (GridViewRow row in dgRD.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     //Below captures the checkbox value (yes or no) 
     CheckBox chk = (CheckBox)row.FindControl("TicketCompleted");      
     if (chk.Checked) 
     { 
      //Here is where I will run the update 
     } 
    } 
} 
+0

改變隱藏字段的ItemTemplate一個並添加標籤和綁定你的ID標記;在代碼後面找到該標籤並獲得價值 – techspider

+0

@techspider。我跟着你,直到從ItemTemplate中找到值並使用C#獲取值? –

回答

3

HTML:

<asp:BoundField DataField="weekofyear" HeaderText="Week" /> 
<asp:BoundField DataField="supportname" HeaderText="Name" /> 
<%--<asp:BoundField DataField="supid" HeaderText="SupportIDName" Visible="false"/>--%> 
<asp:TemplateField> 
    <ItemTemplate> 
      <asp:Label runat="server" Text='<%#Eval("supid") %>' ID="supid" Visible="false"></asp:Label> 
    </ItemTemplate> 
    <ItemTemplate> 
      <asp:CheckBox ID="TicketCompleted" runat="server" AutoPostBack="true" OnCheckedChanged="TicketCompletedCompleted_Click" Checked='<%# Convert.ToBoolean(Eval("TicketCompleted")) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

C#

CheckBox chk = (CheckBox)row.FindControl("TicketCompleted"); 
if (chk.Checked) 
{ 
    string ID = ((Label)row.FindControl("supid")).Text; 
}