Использование флажков с ASP.NET и Javascript - PullRequest
1 голос
/ 26 апреля 2009

У меня есть код Javascript, который делает это:

var oObjchbox = document.getElementById("CheckBox_" + countyId);<br>

Идентификатор страны исходит из предварительно созданной карты изображений.

С другой стороны, флажки создаются ASP.NET. Моей первой попыткой было использование asp.repeater с asp: checkBox, но это не сработало, поскольку ASP.NET настаивает на создании собственных идентификаторов. Другая попытка состояла в том, чтобы использовать HTML INPUT без runat = server, но затем чекбоксы не выдержали обхода.

У кого-нибудь есть решение этой проблемы? Я нашел подобную проблему здесь http://www.velocityreviews.com/forums/t301617-hijack-databoundliteralcontrol.html но никто не ответил на его вопрос.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2009

Если проблема заключается в получении идентификатора из флажка внутри повторителя, то эта статья может помочь, Установите все флажки в GridView . В нем показано, как создать клиентскую часть, чтобы выбрать все функции в ASP.Net Gridview.

Проблема, с которой вы сталкиваетесь, не редкость. Вы хотите получить доступ к элементу управления, который находится в элементе управления, который повторяет макет (GridView, Repeater, DataList и т. П.) С использованием JavaScript.

Следует помнить, что вы можете получить доступ к сгенерированному ClientId во время событий DataBound ( RowDataBound , ItemDataBound ), которые затем можно использовать на стороне клиента.

Затем в обратном пути, поскольку это стандартный элемент управления, вы сможете его найти. Однако если вы используете повторитель, то для обновления данных может потребоваться немного больше работы, поскольку сам элемент управления больше предназначен для отображения только для чтения.

Если проблема заключается в отображении каждого элемента управления в предопределенный StateCode, то в событиях ItemDataBound или RowDataBound (если вы измените с Repeater на Something else) вы можете связать вызов метода JavaScript с 1 или 2 параметрами в зависимости от необходимости. Либо currentCheckBoxId и соответствующий StateCode отдельно или уже объединены и использовать его в качестве функции типа поиска.

Извините за два ответа, но вопрос казался немного расплывчатым в отношении того, что вы на самом деле пытались сделать, возможно, мне просто нужна еще одна чашка кофе. Надеюсь, что одна из этих идей поможет.

1 голос
/ 26 апреля 2009

Если ваша цель состоит в том, чтобы обнаружить выбранные флажки на сервере, почему бы не создать скрытое поле и обновить клиентскую часть, объединяя идентификатор страны при каждом щелчке, чтобы создать список с разделителями, например, США; Прочитайте это значение в обратной передаче, выполните синтаксический анализ, и у вас будут выбранные страны.

В вашей PageLoad выдайте следующее: RegisterHiddenField ("txtCountryCodes", "");

1 голос
/ 26 апреля 2009

Вы можете использовать jquery для решения этой проблемы, он обеспечивает функциональность для выбора элементов по пользовательскому запросу, например

$ ("[id * = CheckBox1") - вернуть все элементы, где конец идентификатора равен CheckBox1.

$ ("[id ^ = CheckBox1") - вернуть все элементы, где начало идентификатора - CheckBox1.

и вы можете найти по слову и множеству других селекторов.

Для получения дополнительной информации jquery.com, вам понравится =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...