powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с получением ID контрола на клиенте
7 сообщений из 7, страница 1 из 1
Проблема с получением ID контрола на клиенте
    #34635254
kpomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такой код


<asp:GridView>
  <Columns>
    <asp:TemplateField>
      <EditItemTemplate>
         <asp:TextBox ID="txtDate_" runat="server" Width="75"></asp:TextBox>
         <asp:ImageButton ID="imgbtnCalendar_" runat="server" ImageUrl="~/Resources/Imgs/calendar.gif" />
         // Регистрация контрола
         <script language="javascript" type="text/javascript">
       Calendar.setup({
        inputField     :   "ctl00_cphMain__gwReports__ctl02_txtDate_",
        ifFormat       :    "%d/%m/%Y",
        showsTime      :    false,
        button         :    "ctl00_cphMain__gwReports__ctl02_imgbtnCalendar_",
        singleClick    :    true,
        step           :    1
        });
        </script>

естественно вместо строгих айдишников надо вставить нечто вроде <%# txtDate.ClientID %>
но проблема в том что эти контролы находятся в контейнере т.е о них страница ничего не знает.
пробовал регистрировать скрипт в RowCreated не выходит т.к




TextBox txtDate = e.Row.Cells[0].FindControl( "txtDate_" ) as TextBox;
    ImageButton imgbtnCalendar = e.Row.Cells[0].FindControl( "imgbtnCalendar_" ) as ImageButton;
    if ( txtDate != null && imgbtnCalendar != null )
    {
      String calendar = "<script language=\"javascript\" type=\"text/javascript\"> " +
                      "<!-- " +
                      "Calendar.setup({ " +
                      "inputField: \"" + txtDate.ClientID + "\", " +
                      "showsTime: false, " +
                      "button: \"" + imgbtnCalendar.ClientID + "\", " +
                      "singleClick: true, " +
                      "step: 1 " +
                      "}); " +
                      "--> " +
                      "</script>";
      ClientScript.RegisterStartupScript( GetType(), "calendar", calendar, false );
    }

на клиент приезжаю неверные айдишники

подскажите что не так?? и как помочь
...
Рейтинг: 0 / 0
Проблема с получением ID контрола на клиенте
    #34636212
Neu Romantic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я могу сильно ошибиться, но....
А что если попробовать не ClientID а UniqueID ?________________________________________________
Сила тока в Амперах. Сила знания в Россах. (с) А.Зорич.
...
Рейтинг: 0 / 0
Проблема с получением ID контрола на клиенте
    #34636252
Aib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UniqueID не катит. Вы в принципе можете где-нить на preRender пробежаться по коллекции рядов грида и посмотреть ClientID. Но вообще странно, что приходят не те id.
...
Рейтинг: 0 / 0
Проблема с получением ID контрола на клиенте
    #34637591
kpomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем сделал так:
в методе RowDataBound оказывается все работает здорово
и именно в нем ищю контролы, получаю их клиентские айди(нормальные, а не кривые ) и регистрирую скипт
вауля :)

вот по какой причине причине в других методах айдишники были кривые( я имею ввиду без добавления иерархии )
это для меня загадка
...
Рейтинг: 0 / 0
Проблема с получением ID контрола на клиенте
    #34638274
Aib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я знаю, id-шник становится правильным, когда контрол занимает свое место в общей иерархии контролов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблема с получением ID контрола на клиенте
    #38323562
Фотография puss_in_boots
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kpomka,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<script language="C#" runat="server">


void Set_Date(object sender, System.EventArgs e)
{
  if (Validator1.IsValid)
    if (TextBox.Text.Length>0)
    {
      Calendar1.SelectedDate=DateTime.Parse(txtDate.Text);
      Calendar1.VisibleDate=Calendar1.SelectedDate;
    }
    else
      TextBox.Text = Calendar1.SelectedDate.ToShortDateString();
}


void Do_Something(object sender, System.EventArgs e)
{
  lblSelectedDate.Text = Calendar1.SelectedDate.ToShortDateString();
  pnlCalendar.Visible = false;
}


void Page_Load(object sender, System.EventArgs e)
{
  if (!IsPostBack)
  {
    Calendar1.SelectedDate = DateTime.Today;
    Calendar1.VisibleDate = Calendar1.SelectedDate;
    TextBox.Text = Calendar1.SelectedDate.ToShortDateString();
  }
}
</script>




<form runat="server">
...
Рейтинг: 0 / 0
Проблема с получением ID контрола на клиенте
    #38323563
Фотография puss_in_boots
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kpomka,

Возможно Вы нашли решение, я бы сделал так!?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с получением ID контрола на клиенте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]