2

更新パネルにコードがあり、ボタンをクリックしてもデータをデータベースに挿入し、Updatepanel.Update() を呼び出すだけでページ全体がリロードされます。

ギフト.ASPX

<table style="width:100%;">
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="Gift"></asp:Label>
                </td>
                <td>
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
                    <asp:TextBox ID="txtNewGift" runat="server"></asp:TextBox>
    </ContentTemplate>
</asp:UpdatePanel>
                </td>
            </tr>
            <tr>

Gifts.aspx.CS

protected void cmdAddGift_Click(object sender, EventArgs e)
{
    OleDbConnection objConn = new OleDbConnection(DataSource);

    Random r = new Random();
    int giftID = r.Next(1200, 14000);

    OleDbCommand objCommand = new OleDbCommand("Insert into Gifts (GiftID, Description) values (" + giftID + ",'" + txtNewGift.Text + "')", objConn);
    ExecuteCommand(objCommand);

    PopulateGifts(objConn);

    txtNewGift.Text = "";
    UpdatePanel3.Update();
}

テキストボックスだけが更新されるのではなく、このページ全体がリロードされる理由はありますか?

4

4 に答える 4

3

上記の例のボタンはどこにありますか? UpdatePanel の内側または外側。外部にある場合は、UpdatePanel のトリガー コレクションに追加する必要があります。

また、(部分的な) ポストバックの原因となったもの以外の UpdatePanel のコンテンツを変更する場合にのみ、UpdatePanel.Update() を呼び出す必要があります。

補足として (そして個人的な十字軍)、DB 接続の周りに using ステートメントを配置することをお勧めします。

以下のマークアップを使用すると、次のことが起こります。

  • btnInnerPart は更新パネル内にあるため、部分的なポストバックが自動的に発生します
  • btnInnerFull は、トリガー コレクションに PostBackTrigger があるため、完全なポストバックを引き起こします。
  • btnOuterPart は、トリガー コレクションに AsyncPostBackTrigger があるため、部分的なポストバックを引き起こします
  • btnOuterFull は UpdatePanel の外側にあるため、完全なポストバックを引き起こします

マークアップ:

<asp:UpdatePanel runat="server">
    <ContentTemplate>
        <!-- Content -->
        <asp:Button runat="server" ID="btnInnerPart" Text="Inner Part" />
        <asp:Button runat="server" ID="btnInnerFull" Text="Inner Full" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnOuterPart" />
        <asp:PostBackTrigger ControlID="btnInnerFull" />
    </Triggers>
</asp:UpdatePanel>
<asp:Button runat="server" ID="btnOuterFull" Text="Outer Full" />
<asp:Button runat="server" ID="btnOuterPart" Text="Outer Part" />
于 2008-11-16T06:47:23.010 に答える
2

Gifts.ASPX のボタンはどこにありますか? ボタンを UpdatePanel 内に配置するか、トリガーを使用する場合、UpdatePanel3.Update(); を呼び出す必要はありません。コードビハインドから。

于 2008-11-16T05:03:11.583 に答える
1

また、ページに ScriptManager オブジェクトが必要です。持っていますか?

于 2008-11-16T05:06:17.910 に答える
0

更新パネルのタグを確認してください...更新パネルが更新される更新パネルのトリガーコントロールを指定する必要があります

于 2009-06-22T06:19:25.883 に答える