单击按钮获取行ID

时间:2018-05-16 07:06:58

标签: c# jquery webforms

我需要点击按钮从数据库中获取行ID。

这是我的c#代码:

protected void ddlBC_SelectedIndexChanged(object sender, EventArgs e)
{
    LogicTableAdapters.getLvLKarTableAdapter getKar = new LogicTableAdapters.getLvLKarTableAdapter();

    DataTable dtKar = getKar.getLvLKar(ddlBC.SelectedValue);

    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[2]
    { 
        new DataColumn("CharName", typeof(string)),                
        new DataColumn("LevelID", typeof(int))
    });

    foreach (DataRow dr in dtKar.Rows)
    {                     
        dt.Rows.Add(dr["CharName"].ToString(), dr["LevelID"].ToString());
    }

    gvKar.DataSource = dt;
    gvKar.DataBind();
}

protected void btnButton_Click(object sender, EventArgs e)
{

}

这是动态GridView,当选择ddl中的项目时,该过程将填充该程序:

<asp:GridView ID="gvKar" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="LevelID" OnRowDataBound="gvKarakteristike_RowDataBound">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:TemplateField HeaderText="Kar">
            <ItemTemplate>
                <asp:Label ID="Kar" runat="server" Width="150px" Height="30px" Font-Names="Georgia" MyCustomAttr="foo" margin-Left="100px" Text='<%# Bind("CharName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

<asp:Button ID="btnButton" runat="server" Text="Show"  autopostback="True"/>

当以警报的形式点击按钮时,必须从数据库中显示每一行的行ID。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我使用这样的代码为行指定一个点击处理程序:

Protected Sub Grid_RowDataBound(sender As Object, e As GridViewRowEventArgs)

    'apply click attribute to select a row 
    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Attributes("onclick") = ClientScript.GetPostBackClientHyperlink(sender, "Select$" & e.Row.RowIndex)
    End If

End Sub

然后这将从datakeys集合中获取相关数据

Protected Sub Grid_RowCommand(sender As Object, e As GridViewCommandEventArgs)

    If e.CommandName = "Select" Then
        Dim LevelID As String = GridResults.DataKeys(e.CommandArgument).Item("LevelID")
        ' Do something with ID here
    End If

End Sub