网格视图中的用户控件
本文关键字:用户 控件 视图 网格 | 更新日期: 2023-09-27 18:27:06
我在网格视图中有一个日期框用户控件,其中一个属性是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;
}
现在,当我在网格视图的日期框中进行更改时,无论是哪一行,它总是给出RowID为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 + ")");
}
页面加载完成事件在加载数据后激发。