我正在尝试通过查询字符串(隐藏字段ID和文本框ID)将参数传递到弹出窗口。但是,由于我使用母版页,因此id非常长(ct100_someid)。有没有办法优雅地传递我的ID?我可以缩短我的ID或者根本不向用户显示它们吗?请告诉我任何替补。
答案 0 :(得分:2)
我喜欢加密查询字符串,以便好奇的用户不会被迫尝试用?CustID=1&etc
替换?CustID=2&etc
。这只是为了方便,因为我还检查后面的代码,以确保查看页面的客户已经过身份验证,但恕我直言看起来更专业。有关vb.net中的示例,请参阅here。
要传递较短的名称,您还可以使用jquery使用id属性而不是整个客户端ID选择隐藏字段,
例如:
<asp:net HiddenField id="hdnName" runat="server" />
var hiddenfield = $("element[id$=_hdnName]");
答案 1 :(得分:2)
你可以在父页面上定义功能,可以通过弹出窗口访问它来设置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);