У меня есть пользовательский элемент управления дата-сайтом в виде сетки, и одним из свойств является RowID. От Gridview Я передаю Row ID в datebox вПользовательский контроль в виде сетки
<uc2:datePage1 ID="txtSubToSA" RowID=<%# Container.DataItemIndex %> runat="server" Enabled="true" Text= '<%#Eval("SUBMITTED_TO_SA") %>' />
в PageLoad в UserControl Я добавляю атрибут для вызова яваскрипта функции:
protected void Page_Load(object sender, EventArgs e)
{
txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");
}
public int RowID
{
get;
set;
}
Теперь, когда я внести изменения в поле даты gridview, независимо от того, какая строка она всегда дает, принимает значение RowID 0 и не распознает изменения, которые я сделал в других строках. Что я здесь делаю неправильно?
Вы имеете в виду DataBind пользователя usercontrol или Gridview? Usercontrol - простой текстовый редактор и ajax-контроллер каландрового расширителя. Этот usercontrol используется в различных столбцах gridview. Я хочу запустить событие onchange в строке, в которой изменяется значение элемента управления текстовым полем. – user799891
Я разрешил его, установив атрибут в свойстве, а не в загрузке страницы. Спасибо за совет! Это то, что я сделал, и это сработало. «Code'public INT RowId { установить { txtDate.Attributes.Add ("OnChange", "GetRow (" + значение + ")"); } } – user799891
@ user799891 - Я имел в виду метод DataBind для UserControl - вам нужно быть в UserControl для доступа к txtDate. Но ваше решение добавить атрибут в средство настройки свойств тоже будет работать - возможно, лучшее решение, поскольку оно будет работать, если RowId устанавливается программно, а не использует привязку данных. – Joe