[英]User control in a grid view
我在网格视图中有一个日期框用户控件,属性之一是RowID。 从Gridview我将行ID传递给日期框为
<uc2:datePage1 ID="txtSubToSA" RowID=<%# Container.DataItemIndex %> runat="server" Enabled="true" Text= '<%#Eval("SUBMITTED_TO_SA") %>' />
在用户控件的页面加载中,我正在添加属性以调用如下所示的javascript函数:
protected void Page_Load(object sender, EventArgs e)
{
txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}
public int RowID
{
get;
set;
}
现在,当我在gridview的日期框中进行更改时,无论它是哪一行,它始终给出的行ID必须为0,并且无法识别我在其他行中所做的更改。 我在这里做错了什么?
在设置RowId
之前,您要在Load
事件处理程序中添加onchange
属性-这将在数据绑定期间发生。 您可能覆盖数据DataBind
并在完成数据绑定后设置属性:
public override void DataBind()
{
base.DataBind();
txtDate.Attributes.Add(...);
}
您可以改用此方法-将代码从
protected void Page_Load(object sender, EventArgs e)
{
txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}
至
protected void Page_LoadComplete(object sender, EventArgs e)
{
txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}
加载数据后,将触发“页面加载完成”事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.