2016-10-10 52 views
-1

我有一個Gridview,它也包含一個按鈕字段。當點擊某一行上的這個按鈕時,我想讓它更新我的數據庫。例如,如果一行包含(SN = 1)我希望它更新按鈕以使用包含"SN = 1"的行更新數據庫。當點擊同一行上的按鈕時,如何獲得該行的SN我如何獲得Gridview中特定行的值

這是我的GridView的定義:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" Height="326px" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5" style="text-align: left; margin-left: 169px" Width="1069px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand"> 
    <Columns> 
     <asp:BoundField HeaderText="S/N" DataField="SN" /> 
     <asp:BoundField HeaderText="First Name" DataField="FirstName" /> 
     <asp:BoundField HeaderText="Address" DataField="Address" /> 
     <asp:BoundField HeaderText="Phone Number" DataField="PhoneNumber" /> 
     <asp:BoundField HeaderText="Sex" DataField="Sex" /> 
     <asp:BoundField HeaderText="Reason" DataField="Reason" /> 
     <asp:BoundField HeaderText="SignIn" DataField="SignIn_Time" /> 
     <asp:BoundField HeaderText="SignOut" DataField="Signout_Time" /> 
     <asp:TemplateField HeaderText="Action"> 
      <ItemTemplate> 
       <asp:Button ID="out" runat="server" Text="Sign out" CommandName="SignOut"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

    <PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast" PageButtonCount="5" /> 
</asp:GridView> 

這裏,當點擊該行按鈕時,我想更新我與signout實時數據庫。我似乎無法得到它的行和更新SN

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "SignOut") 
    { 

    } 
} 
+0

檢查甚至的按鈕,你可以通過索引 – A3006

+1

得到單元格的值,你的源代碼在哪裏? – vivek

回答

0

如果你追求的價值是來自同一個數據源,你可以添加值作爲CommandArgument:

<asp:TemplateField HeaderText="Action"> 
    <ItemTemplate> 
     <asp:Button ID="out" 
      runat="server" 
      Text="Sign out" 
      CommandName="SignOut" 
      CommandArgument='<%# Eval("SN") %>'/> 
    </ItemTemplate> 
</asp:TemplateField> 

在後面的代碼:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "SignOut") 
    { 
     string sn = e.CommandArgument.ToString(); 
     if (sn == "1") 
     { 
      /*DO STUFF....*/ 
     } 
    } 
} 
+0

你剛剛做了我的一天@ felipe-deguchi。我整天都在搜索答案,並提供了答案。它運作良好。謝謝 – Mcbaloo

+0

@Mcbaloo,沒問題。很高興我能幫上忙。我請您將此標記爲答案,以便它不會顯示給那些在satckoverflow上查找未解答的問題的人。祝你有美好的一天 –

相關問題