私はGridView.
GridViewでレンダリングしているページを持っていCheckBox
ます.Jqueryダイアログが表示され、そのダイアログでポストバックイベントが必要ですcheck
. uncheck
そのため、そのページに手動ポストバックを追加しています。gridviewに1ページしかないまで、すべて問題ありません。gridview にレコードが追加されるとすぐに、ページに _doPostBack メソッドが追加されます。そのため、ページに 2 _doPostBack メソッドがあり、これが原因で何も機能しません。
既に手動で定義しているため、コントロールによって _doPostBack メソッドを追加したくないページで定義するにはどうすればよいですか?
ここに私のHTMLがあります
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1">
<title>Store Management</title>
<script src="/js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="/js/jquery-ui.min-1.10.1.js" type="text/javascript"></script>
<link href="/assets/styles/StorePortal/style-22012013.css" rel="stylesheet"
type="text/css" />
<link href="/assets/styles/StorePortal/jquery-ui.css" rel="stylesheet"
type="text/css" />
<link href="../App_Themes/AbleCommerce/ComponentArt.css" rel="stylesheet"
type="text/css" />
<link href="../App_Themes/AbleCommerce/print.css" rel="stylesheet" type=
"text/css" />
<link href="../App_Themes/AbleCommerce/style.css" rel="stylesheet" type=
"text/css" />
<link href="../App_Themes/AbleCommerce/webparts.css" rel="stylesheet" type=
"text/css" />
</head>
<body>
<form action=
"portal.aspx?q=bbaae796d951c95311f5ec3e599784079c6093ee&q1=COV" id=
"form1" method="post" name="form1">
<div>
<input id="__EVENTTARGET" name="__EVENTTARGET" type="hidden" value=
"" /> <input id="__EVENTARGUMENT" name="__EVENTARGUMENT" type=
"hidden" value="" />
</div><script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div>
<input id="__VIEWSTATEENCRYPTED" name="__VIEWSTATEENCRYPTED" type=
"hidden" value="" />
</div>
<script type="text/javascript"> --> this one is added by me manually
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div>
<input id="__EVENTTARGET" name="__EVENTTARGET" type="hidden" value=
"" /> <input id="__EVENTARGUMENT" name="__EVENTARGUMENT" type=
"hidden" value="" /> /// sOME CODE HERE
</div>
--> this one is added by me manually
</form>
</body>
</html>
ここで、私が追加した _doPostBack を削除すると、グリッドビュー ページングが機能します。しかし、グリッドビューに1ページしかない場合、_doPostBackが見つからないため、jqueryダイアログのイベントが機能しません。
答え:
私が追加した _doPostBack() を削除し、代わりに、このメソッドを必要とする asp.net コントロールがなくても _doPostBack() を追加する Page_Load() にこれを追加しました。
ClientScript.GetPostBackEventReference(this, string.Empty);
そのリンクを指摘してくれた@Tim Schmelterに感謝します