这是我的ASP代码:
<asp:GridView ID="WagerTable" runat="server" AutoGenerateColumns="False" CssClass="basix" >
<columns>
<asp:BoundField DataField="GameName" HeaderText="Game Name" />
<asp:BoundField DataField="Amount" HeaderText="Amount" />
<asp:BoundField DataField="Comment" HeaderText="Comment" />
<asp:BoundField DataField="CreateTime" HeaderText="Create Time" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" Text="Accept" OnClick="AcceptWager" ID="AcceptButton" />
</ItemTemplate>
</asp:TemplateField>
</columns>
</asp:GridView>
这是我背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
AccountManager accManager = new AccountManager();
MembershipUser newUser = Membership.GetUser(HttpContext.Current.User.Identity.Name);
Guid UserId = (Guid)newUser.ProviderUserKey;
String myConnectionString = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
SqlDataReader reader;
using (SqlConnection myConnection = new SqlConnection(myConnectionString))
{
myConnection.Open();
String selectSql = "SELECT * FROM aspnet_Wagers INNER JOIN aspnet_Games ON aspnet_Wagers.GameId = aspnet_Games.GameId";
SqlCommand myCommand = new SqlCommand(selectSql, myConnection);
myCommand.Parameters.AddWithValue("@UserId", UserId);
reader = myCommand.ExecuteReader();
WagerTable.DataSource = reader;
WagerTable.DataBind();
myConnection.Close();
}
}
protected void AcceptWager()
{
}
我希望能够拥有它,以便每个LinkButton可以将数据库中的ID作为参数传递给AcceptWager函数,然后我将从那里开始。 ID的sql列是WagerId。它在我执行的查询中返回,因此它已经在reader
中。感谢
答案 0 :(得分:3)
<asp:LinkButton>
具有CommandArgument
属性。
可能是这样的:
<asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, "SOME_VALUE")%>' />
答案 1 :(得分:3)
尝试:
<asp:LinkButton runat="server" Text="Accept" OnClick="AcceptWager" ID="AcceptButton" CommandArgument='<%# ((DataRowView)Container.DataItem)["WagerId"]%>' />
然后在您的代码隐藏中,您将要使用:
int wagerId = ((LinkButton)sender).CommandArgument;
答案 2 :(得分:1)
在HTML中更改您的LinkButton声明:
<asp:LinkButton CommandArgument='<%# ((SqlDataReader)Container.DataItem)["WagerID"] %>'
runat="server" Text="Accept" OnClick="AcceptWager" ID="AcceptButton" />
然后,您可以通过从命令处理程序方法中的按钮中提取CommandArgument
属性来提取它。
答案 3 :(得分:0)
可以处理LinkButton的DataBinding事件并自定义设置LinkButton的CommandArgument等于相应DataRow的“ID”值。之后,可以处理LinkButton的Click事件,从sender对象获取LinkButton的实例,并使用其CommandArgument属性。