2

UpdatePanel を使用して、いくつかの検索結果でデータグリッドを更新していますが、機能しておらず、ページ全体がポストバックされています。誰かが私を助けてくれることを願っています。これを正しく機能させることはできません。. ありがとう。これが私のコードです:

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>

            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td align="left" class="pageTitle" valign="top">
                        <twc:LocalizedLiteral Text="CRMcontxt6" runat="server" />
                    </td>
                </tr>

                    <tr align="left" style="background-color: #9bbbe3">
                        <td align="left" colspan="3">
                            <asp:Label ID="lblSearch" Height="15" runat="server" Font-Bold="true" Font-Size="11"></asp:Label>
                            <asp:TextBox Width="500px" ID="Search" autoclick="BtnSearch" runat="server" CssClass="boxDesign" />
                            <asp:LinkButton  ID="BtnSearch" runat="server" CssClass="save" />
                         </td>
                    </tr>
                </table>

                   <asp:datagrid id="searchresults" runat="server">
           </ContentTemplate>

             <Triggers>
                <asp:AsyncPostBackTrigger ControlID="BtnSearch" />
            </Triggers>
            </asp:UpdatePanel>
4

5 に答える 5

4

これはおなじみの.NETバグのように見えます。LinkBut​​tonにClientIDMode="AutoID"を設定すると、修正されるはずです(ちなみに、トリガーを削除できます。必須ではありません)。

于 2012-10-13T19:13:26.470 に答える
2

いくつかの解決策:

a. UpdatePanel でGivingUpdateMode = Conditionalを試してみてください (トリガーを与えるときは、これを定義する必要があります)。

b. を削除して<table>から に置き換えてみてください<div>。更新パネルは table タグと相性が悪い場合があります。

c. 上記が機能しない場合は、まずトリガーと更新モードの条件を削除して、それが機能するかどうかを確認してください。それが機能しない場合は、更新パネル内のコンテンツに問題があることを意味するためです。問題をドリルダウンするために、いくつかのコントロールから始めたいと思うかもしれません。

d. ユーザー コントロールが呼び出されているのが見えます - それらのユーザー コントロール内に更新パネルが適切に配置されているかどうかを確認してください。

于 2012-10-13T02:13:51.087 に答える
1

これを UpdatePanel で使用します。

UpdateMode="Conditional" ChildrenAsTriggers="true"
于 2015-04-07T10:41:48.647 に答える
1

<form>HTML ソースに 2 つ以上のタグがないことを確認してください。通常、asp.net ページには 1 つの<form>タグしかありません。

この質問はこれまで回答なしで長い間尋ねられてきましたが、同様の問題に直面しましたが、更新パネルが機能しない原因を発見しました:

HTML の一部にタグがあり、その HTML フラグメントをマスター ページの<form>既存のタグ内に挿入すると、問題が発生します。<form>マスター ページの子ページが実行され、送信ボタンがクリックされるたびに、ボタンが実行するはずのコードが実行されません。代わりに、更新パネルにもかかわらずページ全体が更新され、ページの URL にクエリ文字列が追加されることもあります。

マスターページのネストされた<form>タグが原因です。余分なタグを削除するとすぐに、<form>すべてが正常に機能するはずです。

これが誰かに役立つことを願っています。

于 2016-07-02T09:30:05.043 に答える
0

トリガー イベントを見逃しました。トリガーは次のようになります

<Triggers>
            <asp:AsyncPostBackTrigger ControlID="BtnSearch" EventName="Click" />
</Triggers>

UpdateMode更新パネルの属性をに設定することを忘れないでくださいConditional

ここに参照があります:: ASP.NET 4.0 C# の UpdatePanel でトリガーを使用する

于 2012-10-13T01:57:46.333 に答える