我有一个下拉列表并且有一个事件selectedIndexChanged回发,我希望能够在用户更改dropdownlist中的值时向用户显示一条消息,根据消息的输入,我将决定是否必须回发或不。
显示的信息是您确定的吗?如果他选择是,我将继续回发,如果他说不,我会取消回发并将之前的值分配为选中。
我已经搜索了很多但是无法找到解决方案,我想如果有一个javascipt函数可以确定是否需要回发可以帮助我猜测
由于
答案 0 :(得分: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, '');
}
};
答案 1 :(得分:1)
你可以停止可以非常简单地取消下拉列表的回发。只需在页面加载事件上添加此javascript。
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.Attributes.Add("OnChange", "if (!confirm('Change this?')){return};");
}
答案 2 :(得分:0)
为了完成此任务,您需要使用CustomValidator和自定义客户端Javascript来控制回发。
您可以read this article on 4Guys与客户端验证器JavaScript示例讨论不同的验证器,以获得一个想法。
但核心解决方案是使用自定义验证器来仅在表单有效时控制回发。