【问题标题】:asp.net Dropdownlist conditional postbackasp.net Dropdownlist 条件回发
【发布时间】:2012-01-02 03:08:48
【问题描述】:
我有一个下拉列表并有一个事件 selectedIndexChanged 回发,我希望能够在用户更改下拉列表中的值时向用户显示一条消息,根据来自消息的输入我将决定是否必须回发与否。
显示的消息是您确定吗?如果他选择是,我将继续回发,如果他说不,我将取消回发并将先前的值分配为选定的。
我已经搜索了很多但无法找到解决方案,我想是否有一个 javascipt 函数可以确定是否需要回发,这可以帮助我猜
谢谢
【问题讨论】:
标签:
javascript
asp.net
drop-down-menu
postback
【解决方案1】:
// get a reference to the DropDownList
var selectlistId = '<%= ddlYourList.ClientID %>',
selectlist = document.getElementById(selectlistId);
// attach to the onchange event
selectlist.onchange = function() {
// decide whether to execute the __doPostBack event, which submits the
// form back to the server
if(confirm("Are you sure you want to do this?")){
__doPostBack(selectlistId, '');
}
};
【解决方案2】:
您可以很简单地停止可以取消下拉列表的回发。只需在页面加载事件中添加此javascript即可。
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.Attributes.Add("OnChange", "if (!confirm('Change this?')){return};");
}
【解决方案3】:
为了完成这项任务,您需要使用带有自定义客户端 Javascript 的 CustomValidator 来控制回发。
您可以read this article on 4Guys 使用客户端验证器 JavaScript 示例讨论不同的验证器以获取想法。
但核心解决方案是使用自定义验证器来控制仅在表单有效时回发。