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


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

вот по какой причине причине в других методах айдишники были кривые( я имею ввиду без добавления иерархии )
это для меня загадка
...
Рейтинг: 0 / 0
04.07.2007, 15:01
    #34638274
Aib
Aib
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с получением ID контрола на клиенте
Насколько я знаю, id-шник становится правильным, когда контрол занимает свое место в общей иерархии контролов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.07.2013, 05:08
    #38323562
puss_in_boots
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с получением ID контрола на клиенте
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
08.07.2013, 05:10
    #38323563
puss_in_boots
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с получением ID контрола на клиенте
kpomka,

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


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