<script type="text/javascript">
var rr = false;
function layer_confirm() {
//詢問框
var index = layer.confirm('支付成功將扣除相應金額,是否確認支付?',
{
btn: ['確認', '取消'] //按鈕
},
function (index) {
rr = true;
__doPostBack('<%= btn_pay.UniqueID %>', '');
layer.close(index);
},
function (index) {
rr = false;
layer.close(index);
});
return rr;
}
</script>
↑ 這是普通按鈕在OnServerClick之前的OnClick方法中的js形式的消息框 OnClick="return layer_Convfirm();",要先定rr=false是因為如果不定義false那么提示框結果默認為true,閃現之后直接執行后面的方法,先定義false之后提示框會一直停留,直到用戶選擇確定或者取消按鈕才會消失
↓ 這是適用於repeater的oncommand方法的提示框,如果在repeater中循環添加了很多按鈕,那么按鈕的響應事件就是在oncommand方法中實現,
可是有時候並不想直接執行方法,會在執行前進行一個詢問框的提示,只有在詢問框中選擇yes才會執行oncommand方法,這時候就用以下方式進行消息提示框的顯示
//這是在cs中pageload方法前的初始化以及判斷repeater中的參數是否為空的方法 private string Argument = string.Empty; private string CommandName = string.Empty; protected void Page_Load(object sender, EventArgs e) { CommandName = Request.Params.Get("__EVENTTARGET"); Argument = Request.Params.Get("__EVENTARGUMENT"); if (!string.IsNullOrEmpty(Argument)) { if (Argument == "rep_UsedBookList_ItemCommand") { rep_UsedBookList_ItemCommand(CommandName); } } }
//這是在repeater的默認oncommand方法中將參數傳遞給重載的oncommand方法 protected void rep_UsedBookList_ItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "tuihuo") { rep_UsedBookList_ItemCommand(e.CommandName + "," + e.CommandArgument); } if (e.CommandName == "querenshouhuo") { //在后台設置前台提示框的方法 StartupScript.Register(this, "layer_confirm('" + e.CommandName + "," + e.CommandArgument + "','rep_UsedBookList_ItemCommand','是否確認收貨?');"); } }
protected void rep_UsedBookList_ItemCommand(string btname) { try { //將得到的參數分解,如果分解得到的不是兩個參數,直接return var CommandArgument = string.Empty; var CommandName = string.Empty; string[] arr = btname.Split(','); if (arr.Length != 2) { return; } for (int i = 0; i < arr.Length; i++) { if (string.IsNullOrEmpty(arr[i])) { return; } if (i == 0) CommandName = arr[i]; if (i == 1) CommandArgument = arr[i]; } var ID = CommandArgument; //進行原本會在默認oncommand方法中執行的方法 //點擊確認收貨按鈕 if (CommandName == "querenshouhuo") { }
}
}
↓ 后台設置前端的提示框,將div設置成提示框的樣式,在js中執行顯示方法
<!--退貨原因-->
<div id="inputReason" class="ui-form ui-form-popover sizing" runat="server">
<div class="form-popover sizing">
<div class="form-main">
<div class="ui-input-group">
<input type="text" id="txt_reason" runat="server" value="" class="ui-input-item" placeholder="請輸入退貨原因" />
</div>
<div class="ui-button-group">
<button class="ui-btn ui-btn-submit" style="width: 40%" runat="server" id="btn_Commit" onserverclick="btn_Commit_OnServerClick">確認</button>
<button class="ui-btn ui-btn-submit" style="width: 40%" runat="server" id="btn_Cancel" onserverclick="btn_Cancel_OnServerClick">取消</button>
</div>
</div>
</div>
</div>
//這是按鈕的響應事件 protected void lb_querenshouhuo_Click(object sender, EventArgs e) { var btn = (LinkButton)sender; //執行js中的方法,顯示div StartupScript.Register(this, "inputReason()"); }
// 輸入退貨原因 function inputReason() { //inputreason是div的id $('#inputReason').show(); $('.ui-overlay').show(); //$(".ui-tabs-main > .ui-tabs-content").eq(1).fadeIn().siblings().hide(); };
