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

  • Автор темы Автор темы *null
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
N

*null

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

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

Код:
<%@ 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) + "');");
}
}
}
 
NikSoft, спасибо!

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

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

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

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

Цитата
Пользуясь случаем хочу передать привет авторам Korhani, EP и ETT

Кто такие?

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!