1

asp:DropDownList (AutoPostBack="true") を含む ASP ページがあるので、ユーザーが変更すると、適切なデータがリロードされます。

そのコントロールの下に、データを保存するための tinymce エディター (asp:TextBox に関連付けられている) と asp:ImageButton を含む UserControls のリストがあります。

ImageButton をクリックすると、アプリケーションは ajax を介して同じページ (__EVENTARGUMENT、__EVENTTARGET など) にポストバック データを送信します。その ajax ページをロードするのはなぜですか? また、それを防ぐにはどうすればよいですか? ImageButton の OnClick イベント ハンドラーで DB の値を更新しているので、あとはその ajax 呼び出しを処理するだけです。

何か案は?

4

2 に答える 2

0

UpdatePanel を使用しているとは述べていませんが、これはおそらく ajax 呼び出しを実装した方法です。その場合、imagebutton イベントを ajax から除外するトリガーを追加する必要があります。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<Triggers> 
<asp:PostBackTrigger ControlID="ImageButton" />
</Triggers>
<ContentTemplate> </ContentTemplate> 
</asp:UpdatePanel> 
于 2011-02-22T12:44:40.983 に答える
0

解決策 1

<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;"  />

または解決策 2

<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg" 
OnClientClick="yourmethod(); return false;"  />

さらに(解決策2)、JavaScriptメソッドはこの形式である可能性があります

<script type="text/javascript">
    function yourmethod() {
    __doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3);
    }
</script>

コードビハインドで

protected void Page_Load(object sender, System.EventArgs e)
{
    if (this.IsPostBack) {
        string eventTarget = this.Request("__EVENTTARGET") == null ? string.Empty : this.Request("__EVENTTARGET");
        string eventArgument = this.Request("__EVENTARGUMENT") == null ? string.Empty : this.Request("__EVENTARGUMENT");
    }
}
于 2013-06-21T10:08:14.263 に答える