如何在Gridview

时间:2016-10-10 10:45:51

标签: c# asp.net gridview

我有一个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")
    {

    }
}

1 个答案:

答案 0 :(得分: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....*/
        }
    }
}