Пользовательский контроль в виде сетки - PullRequest
0 голосов
/ 08 марта 2012

У меня есть пользовательский элемент управления datebox в виде сетки, и одним из свойств является RowID.Из Gridview я передаю идентификатор строки в поле даты как

<uc2:datePage1 ID="txtSubToSA" RowID=<%# Container.DataItemIndex %>   runat="server" Enabled="true" Text= '<%#Eval("SUBMITTED_TO_SA") %>' />

в загрузке страницы usercontrol. Я добавляю атрибут для вызова функции javascript следующим образом:

protected void Page_Load(object sender, EventArgs e)
    {

        txtDate.Attributes.Add("onchange", "getRow(" + RowID + ")");

    }
  public int RowID
        {
            get;
            set;
        }

Теперь, когдаЯ делаю изменения в поле даты в виде таблицы, независимо от того, какую строку он дает, RowID равен 0 и не распознает изменения, которые я сделал в других строках.Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Вы можете попробовать это вместо этого - Переместите код с

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 + ")");
}

Событие загрузки страницы завершается после загрузки данных.

0 голосов
/ 08 марта 2012

Вы добавляете атрибут onchange в обработчик событий Load до того, как был установлен RowId, что произойдет во время привязки данных.Возможно, вы могли бы переопределить DataBind и установить атрибут после завершения привязки данных:

public override void DataBind()
{
    base.DataBind();
    txtDate.Attributes.Add(...);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...