当单击子LinkButton控件时,使用多条记录访问Datalist控件中的子标签控件值
本文关键字:控件 Datalist 访问 记录 标签 LinkButton 单击 | 更新日期: 2023-09-27 18:01:30
我有一个aspx页面与数据控件和FormView控件。Datalist显示所有记录,而FormView是隐藏的。FormView显示记录的详细信息,Datalist控件是隐藏的。当我单击数据列表中的记录时,我转到Formview中显示,编辑所选记录。
如何将记录id传递给单击事件以选择数据库中的记录并在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>
下面是我想在点击链接按钮时访问标签控件的代码,并将值传递给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;
}
谢谢你看这个!
你可以添加一个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);