Я пытаюсь передать параметры во всплывающее окно через строку запроса (скрытое поле id & - идентификатор текстового поля). Однако, поскольку я использую мастер-страницы, идентификаторы очень длинные (ct100_someid). Есть ли способ элегантно передать мои идентификаторы? Могу ли я сократить свой идентификатор или не показать их пользователю вообще? Скажите, пожалуйста, какие-нибудь заместители.Передача параметров во всплывающее окно?
ответ
можно определить на родительской странице, к которой можно получить доступ всплывающим окном для установки значений fiedls:
На родительской странице
function setHiddenValues(a,b,c){
document.getElementById("<%= hiddenField1.ClientID%>").value = a;
document.getElementById("<%= hiddenField2.ClientID%>").value = b;
document.getElementById("<%= hiddenField3.ClientID%>").value = c;
}
На всплывающей странице, после того, как пользователь выбирает строку:
parent.setHiddenValues(val1, val2, val3);
Это хорошая работа. –
Мне нравится зашифровывать запрос, чтобы любопытный пользователь не захотел заменить ?CustID=1&etc
на ?CustID=2&etc
. Это просто для удобства, так как я также проверяю код, чтобы убедиться, что клиент, просматривающий страницу, прошел аутентификацию, но IMHO выглядит более профессионально. См. here для примера в vb.net.
Чтобы передать более короткое имя, которое вы также можете использовать JQuery для выбора скрытого поля, используя идентификатор атрибута, а не весь идентификатор клиента,
например: <asp:net HiddenField id="hdnName" runat="server" />
var hiddenfield = $("element[id$=_hdnName]");
Возможно, это не мое требование, но объяснение и подход очень информативны. +1 –
, как вы будете использовать идентификаторы на всплывающие окна? поместить какое-то значение в эти поля или прочитать что-то от них? – TheVillageIdiot
Спасибо за ответ. В моем всплывающем окне будет отображаться сетка элементов, из которых пользователь может выбрать ее, затем она закроет всплывающее окно и задает поле поля текстового поля и скрытое поле на родительской странице. –