我在网格视图中有一个日期框用户控件,其中一个属性是RowID。从GridView的我传递的行ID的datebox为网格视图中的用户控件
<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的日期框中,无论它是什么行,它总是给出RowID为0,并且不识别我在其他行中所做的更改。我在这里做错了什么?
你是指用户控件或Gridview的DataBind? Usercontrol是一个简单的文本框和ajax控制日历扩展器。此用户控件用于gridview的各个列中。我想在文本框用户控件值的文本被更改的行上触发onchange事件。 – user799891 2012-03-08 18:50:11
我通过设置属性中的属性而不是页面加载来解决此问题。谢谢你的提示!这是我做的,它的工作。 'code'public int RowID { set { txtDate.Attributes.Add(“onchange”,“getRow(”+ value +“)”); } } – user799891 2012-03-08 19:05:56
@ user799891 - 我的意思是UserControl的'DataBind'方法 - 您需要在UserControl中才能访问txtDate。但是,在属性设置器中添加属性的解决方案也会起作用 - 可能是更好的解决方案,因为如果以编程方式设置RowId,而不是使用数据绑定,则它将工作。 – Joe 2012-03-08 19:20:39