1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Кликнутый элемент Checkboxlist’а без Submit'а

Тема в разделе ".NET - программирование", создана пользователем *null, 22 мар 2007.

Статус темы:
Закрыта.
  1. *null

    *null Гость

    Репутация:
    0
    Здравствуйте!
    Подскажите, пожалуйста, как можно получить текст элемента (ListItem) по которому пользователь кликнул списка CheckBoxList клиентским скриптом (без сабмита серверу)?

    Для ListBox’а это легко получить тем же JS через selectedItem, а вот у CheckBoxList он всегда равен -1. Есть какие-нибудь решения?
     
  2. NikSoft

    NikSoft Гость

    Репутация:
    0
    Можно сделать так

    Код:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Untitled Page</title>
    
    <script language="javascript">
    function checkItem(id){
    alert(document.getElementById(id).nextSibling.innerHTML);
    }
    </script>
    
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" BorderStyle="Solid" BorderWidth="1px">
    <asp:ListItem Value="value1">text1</asp:ListItem>
    <asp:ListItem Value="value2">text2</asp:ListItem>
    <asp:ListItem Value="value3">text3</asp:ListItem>
    </asp:CheckBoxList></div>
    
    
    </form>
    </body>
    </html>
    Код:
    public partial class _Default : System.Web.UI.Page 
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    for(int i = 0; i < CheckBoxList1.Items.Count; i++ )
    {
    CheckBoxList1.Items[i].Attributes.Add("onclick", "java script:checkItem('" + CheckBoxList1.ClientID + "_" + Convert.ToString(i) + "');");
    }
    }
    }
     
  3. *null

    *null Гость

    Репутация:
    0
    NikSoft, спасибо!

    Мне сейчас пришлось ограничиться DropDownList'ом - вроде все довольны.
    Но Ваш пример мне очень даже пригодиться еще :())
    У меня знаний по asp.net пока явно не достаточно, не знал насчет возможности ставить js-обработчик на
    onclick через attributes. Спасибо!
     
  4. NikSoft

    NikSoft Гость

    Репутация:
    0
  5. Pasha

    Pasha Гость

    Репутация:
    0
    Пару вопросов для размышления:

    1. Что будет, если у CheckBoxList1 добавить аттрибут TextAlign="Left"?
    2. Что будет, если Items в CheckBoxList1 не заадны статически, а заполняются через DataSource (через задание DataSourceID)?
    3. Что будет, если добрый хакер Петя через 4 месяца в PreRender поменяет текст у Item с индексом 0, например с "Please Select" на "Select a country".

    Write your code as if the person maintaining it is a homicidal maniac who knows where you live...

    Because I do.
     
  6. NikSoft

    NikSoft Гость

    Репутация:
    0
    Что будет, если завтра тебе на голову упадет метеорит?
     
  7. Pasha

    Pasha Гость

    Репутация:
    0
    Для: NikSoft
    Ты когда-нибудь поддерживал проект, в котом было много такого-вот "мегакода"? Я поддерживал. Совсем невесело получается. Код, привешивающий скрипты, нужно вписывать в PreRender, иначе на голову может упасть не метеорит, а кулак следующего разработчика.

    З.Ы. Пользуясь случаем хочу передать привет авторам Korhani, EP и ETT.
     
  8. NikSoft

    NikSoft Гость

    Репутация:
    0
    Для: Pasha
    Кто такие?
     
  9. karlito

    karlito Гость

    Репутация:
    0
    Видно те разработчики, которым лучше не встречаться с Pasha во избежании снижения своего самоуважения. :(
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей