2016-10-10 14 views
-1

私はボタンフィールドを含むGridviewを持っています。特定の行のこのボタンをクリックすると、データベースを更新します。たとえば、行に(SN = 1)が含まれている場合は、"SN = 1"を含む行でデータベースを更新するボタンを更新する必要があります。同じ行のボタンをクリックしたときに行のSNを取得するにはどうすればよいですか?グリッドビュー内の特定の行の値を取得するには

これは私の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> 

、行のボタンがクリックされたときに、私はサインアウトの時間で自分のデータベースを更新します。私は行と更新のSNを取得するように見えることはできません。

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

    } 
} 
+0

でもチェックあなたのソースコードはどこですか?インデックス – A3006

+1

を使用して、cellの値を取得できますか? – 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

あなたは私の一日をフェリペ・デグチとしました。私は一日中回答を探していて、あなたはそれを提供しました。それはうまくいった。ありがとう – Mcbaloo

+0

@Mcbaloo、問題ありません。お役に立てて嬉しいです。私はこれを答えとして記入してください。だから、サックオーバーフローに関する未回答の質問を探している人には表示されません。すてきな一日を –

関連する問題