![](/img/trans.png)
[英]ASP.NET MVC3 passing one piece of data through a jquery ajax post to an MVC action
[英]jquery not working after ajax post asp.net mvc3
我正在回發帖子以使用ajax獲得部分視圖,以下是我用來在稱為“ DivSearchGrid”的div中呈現部分視圖的代碼。
<script type ="text/javascript" >
$('#Retrieve').click(function () {
$('form').get(0).setAttribute('action', 'Search');
// $('form').submit();
var formSubmit = $('form');
var datTab;
$.ajax({
url: "/AuthorityGrid/Search",
type: "POST",
data: formSubmit.serialize(),
success: function (data) {
datTab = data;
},
complete: function () {
$('#DivSearchGrid').html(datTab);
}
})
return false;
});
</script>
控制器中的action方法將返回帶有新值的網格。 我的問題是在ajx調用完成后,頁面中的其他jquery事件停止工作。 某些事件的代碼如下。
<script type="text/javascript">
$(function () {
//$('th[scope|="col"]').resizable();
$("#resultGrid > tbody").selectable({
selected: function (event, ui) {
if (ui.selected.cells != null) {
var strAmount = ui.selected.cells(6).innerText;
var Amount = strAmount.replace(/,/gi, "");
var keyValue = "AuthorityLevel1=" + ui.selected.cells(11).innerText + ",AuthorityLevel2=" + ui.selected.cells(12).innerText + ",TcmAccount=" + ui.selected.cells(2).innerText + ",TcmType=" + ui.selected.cells(10).innerText + ",Rating=" + ui.selected.cells(5).innerText + ",Amount=" + Amount + ",AuthorityGridKey=" + ui.selected.cells(9).innerText + ",CagName=" + ui.selected.cells(3).innerText
var keyValModify = ui.selected.cells(11).innerText + "," + ui.selected.cells(10).innerText + "," + ui.selected.cells(12).innerText + "," + ui.selected.cells(5).innerText + "," + ui.selected.cells(2).innerText + "," + Amount + "," + ui.selected.cells(3).innerText + "," + ui.selected.cells(9).innerText
$('#CancelViewParam').val(keyValue);
$('#ModifyViewParam').val(keyValModify);
}
}
});
});
</script>
此函數從網格中選擇一行,並將所選值放在隱藏字段中。
同樣,打開彈出窗口的功能在此功能的ajax call.code之后不起作用。
$(function () {
$("#DivSearch").dialog({ autoOpen: false, height: "600", width: "600", dialogClass: "myRatingHelp", modal: true });
$('#bRatingHelperDivSearch').live('click',function () { $('#DivSearch').dialog('open'); });
$('#DivSearchRating_bOk').click(function () {
$("#InputAuthorityGridSearch_Rating").val($("#hidRating").val());
$("#DivSearch").dialog('close');
});
$('#DivSearchRating_bCancel').click(function () {
$("#DivSearch").dialog('close');
});
});
所有這些功能在ajx調用之前都能很好地工作,但是在調用之后全部停止工作,有人可以幫忙嗎?
將頁面加載jQuery函數放在一個用戶定義的函數中,例如
function initializeLoad() {
$("#DivSearch").dialog({ autoOpen: false, height: "600", width: "600", dialogClass: "myRatingHelp", modal: true });
$('#bRatingHelperDivSearch').live('click',function () { $('#DivSearch').dialog('open'); });
$('#DivSearchRating_bOk').click(function () {
$("#InputAuthorityGridSearch_Rating").val($("#hidRating").val());
$("#DivSearch").dialog('close');
});
$('#DivSearchRating_bCancel').click(function () {
$("#DivSearch").dialog('close');
});
}
initializeLoad();
現在將下面給出的腳本放在頁面末尾:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() == undefined) {
initializeLoad();
}
}
下面的腳本每次完成部分回發后都會調用jQuery頁面加載方法。
上面我只給出了一些功能。 您應該放所有必要的功能。
外部鏈接: http : //www.aboutfortunate.com/Technology-Blog.aspx?entid=29
希望這對您有所幫助。
檢查“ / AuthorityGrid /搜索”頁面,如果再次在該頁面上包含jquery,則在第二次出現jquery事件時會產生問題。 始終在主頁中包含jQuery。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.