2
我有一個jQuery UI對話框,其上有一個單選按鈕列表。我需要調用服務器端方法,當用戶單擊確定,我需要傳遞選定的值。我試着通過調用ajax方法並將選定的值作爲參數傳遞。這很好(值已通過),但我無法從方法中訪問cookie(出現錯誤 - 請求在此上下文中不可用),這是有意義的,因爲這是ajax請求。下面是代碼:在代碼中獲取jQuery UI對話框的值
$("#dialogReject").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Reject": function() {
var value = $(this).find('input:checked').val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/myPage.aspx/RejectDocumentWM",
data: "{'rejectReason':'" + value + "'}",
dataType: "json",
success: function (data) {
alert('success');
},
error: function (result) { alert('error'); }
});
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog("close");
}
}
});
RejectDocument():
[WebMethod]
public static void RejectDocumentWM(string rejectReason)
{
MyNamespace.myPage page = new MyNamespace.myPage();
page.RejectDocument(rejectReason);
}
protected void RejectDocument(string rejectReason)
{
batch batch = (batch)Session["Batch"];
if (client.RejectDocument(batch.GetCurrentDoc().icn, rejectReason, Request.Cookies["username"].Value)) //here is where I get the error
{
NextDocument();
}
}
我試圖通過將值轉換成一個隱藏字段,然後調用一個按鈕,點擊它調用服務器端的方法做這件事。我的問題在於隱藏字段的值始終爲空,即使它在客戶端腳本中正確設置。這裏是代碼爲:
$("#dialogReject").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Reject": function() {
var value = $(this).find('input:checked').val();
$('[id$="hdfRejectReason"]').val(value); //this sets properly
$('[id$="btnRejectDoc"]').click();
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog("close");
}
}
protected void btnRejectDoc_Click(object sender, EventArgs e)
{
batch batch = (batch)Session["Batch"];
if (client.RejectDocument(batch.GetCurrentDoc().icn, hdfRejectReason.Value, Request.Cookies["username"].Value))
//hdfRejectReason.Value is blank
{
NextDocument();
}
}
任何想法對我?我不知道該怎麼做。 謝謝!
我沒有問題設定值 - 它設置正確。我在設置值並顯示適當的值後發出警報。問題是背後的代碼無法識別設置的值。不,我沒有任何其他參數。 – ploni
此hf在'popup'或'主頁'部分? – zchpit
它彈出。我把它移到了主頁面上,現在它可以工作。謝謝你指出我的方向。如果你把它作爲答案(hf需要在主頁面中),我會標記它。再次感謝! – ploni