我有一个带有Datalist控件和FormView控件的aspx页面。 Datalist显示所有记录,并隐藏FormView。 FormView显示记录的详细信息,并隐藏Datalist控件。当我单击Datalist中的记录时,我转到Formview进行显示,编辑所选记录。
如何将记录ID传递给click事件以选择数据库中的记录并在Formview中显示详细信息?
有多个控件具有相同的客户端ID,运行时会在末尾附加一个数字,以使客户端ID唯一。
以下是我想从后面的代码访问的控件:
<asp:Label ID="lHideAndSeek" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "IdString") %>' CssClass="hideAndSeek">
以下是我用来选择公司详细信息的控件:
<asp:LinkButton ID="btnSelectCompany" runat="server" CausesValidation="false"
onclick="btnSelectCompany_Click"><%# DataBinder.Eval(Container.DataItem, "Name") %></asp:LinkButton>
这里是我想在单击linkbutton时访问标签控件并将值传递给SelectCompany()而不是硬编码4的代码:
protected void btnSelectCompany_Click(object sender, EventArgs e)
{
DataList1.Visible = false;
FormView1.ChangeMode(FormViewMode.ReadOnly);
using (jpEntities myEntities = new jpEntities())
{
FormView1.DataSource = myEntities.SelectCompany(4);
FormView1.DataBind();
}
FormView1.Visible = true;
}
谢谢你看这个!
答案 0 :(得分:0)
您可以将CommandArgument属性添加到LinkButton并绑定它的数据,就像使用Text属性一样。然后,您可以从代码隐藏中提取该值。
像这样。
<asp:LinkButton ID="btnSelectCompany" runat="server"
CausesValidation="false" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id") %>' OnClick="btnSelectCompany_Click"><%# DataBinder.Eval(Container.DataItem, "Name") %></asp:LinkButton>
LinkButton linkButton = sender as LinkButton;
int id = int.Parse(linkButton.CommandArgument);