我需要点击按钮从数据库中获取行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。
有人可以帮我吗?
答案 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