0

我的更新面板正在调用该函数,在调试过程中我看到它的内容正在更新到相应的控件。然而,一切都没有改变。如果我要切换到回发,它可以工作。

c# code 

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack) init();
}

public static int curr;     
public static int Max;
private void init() 
{
  curr = 0;
  Max= 10;
  LoadSlider(true);
}

private void LoadSlider(bool next)
{
        int num = 0;
        while (num != 2)
        {
            if (curr == Max) curr = 1;
            if (curr == 0) curr = Max - 1;

            string query = "select product_id, name_p, image1_p from product " +
                   "inner join series on series_id = series_p " +
                   "inner join story on story_p = story_id " +
                   "where delete_display= 0 and delete_display_s = 0 and delete_display_p= 0 and display_p = 1 and display = 1 and display_s = 1 ";
            query += " and product_id = " + curr.ToString();

            JB.CommandResponse response = JB.Master.DataBase.ExecuteQuery(query);
            if (0 < response.Get_returnCode()) return;
            if ((response.Get_DataRecords().Rows).Count == 0)
            {
                if (next) ++curr; else --curr;
                continue;
            }
            System.Data.DataRow row = response.Get_DataRecords().Rows[0];

            if (num == 0)
            {
                Label1_title.Text = row["name_p"].ToString();
                Image1.ImageUrl = row["image1_p"].ToString();
                LinkButton1.PostBackUrl = "productdetails.aspx?id=" + row["product_id"].ToString();
            }

            if (num == 1)
            {
                Label2_title.Text = row["name_p"].ToString();
                Image2.ImageUrl = row["image1_p"].ToString();
                LinkButton2.PostBackUrl = "productdetails.aspx?id=" + row["product_id"].ToString();
            }


            if (next) ++curr; else --curr;
            ++num;
        }
}

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
  LoadSlider(false);
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
  LoadSlider(true);
}

asp.net -------------------------------------------------------------------------------


<asp:ScriptManager ID="ScriptManager2" runat="server" EnablePartialRendering="true" ></asp:ScriptManager>


                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="ImageButton1" EventName="click" />
                                <asp:AsyncPostBackTrigger ControlID="ImageButton2" EventName="click" />

                    </Triggers>

                    <ContentTemplate>
                        <script type="text/javascript">
                            Sys.Application.add_load(BindEvents);
                        </script>

                        <div id="article_3_1" class="left"><asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Sites/Images/Base/prev_main.png" OnClick="ImageButton1_Click" /></div>


                        <div id="article_3_2" class="left">
                            <div id="article_3_top"></div>
                            <div class="clear" style="height: 18px;"></div>
                            <!-- End of top -->




                            <div class="slider left" id="slider_1">
                                <div class="slider_image"><asp:Image ID="Image1" runat="server" CssClass="slider_image_w" /></div>
                                <div class="slider_border" id="border_1"></div>
                                <div class="slider_text">

                                    <asp:Label ID="Label1_title" runat="server" CssClass="bold em12"></asp:Label>
                                    <div class="clear"></div>
                                    <asp:LinkButton ID="LinkButton1" runat="server" CssClass="em12 gray">More</asp:LinkButton>
                                </div>
                            </div> 
                            <div class="slider_gap left"></div>


                            <div class="slider left" id="slider_2">
                                <div class="slider_image"><asp:Image ID="Image2" runat="server" CssClass="slider_image_w" /></div>
                                <div class="slider_border" id="border_2"></div>
                                <div class="slider_text">

                                    <asp:Label ID="Label2_title" runat="server" CssClass="bold em12"></asp:Label>
                                    <div class="clear"></div>
                                    <asp:LinkButton ID="LinkButton2" runat="server" CssClass="em12 gray">More</asp:LinkButton>
                                </div>
                            </div> 
                            <div class="slider_gap left"></div>          
                        </div>


                        <div id="article_3_3" class="left"><asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Sites/Images/Base/next_main.png" OnClick="ImageButton2_Click"  /></div>
                    </ContentTemplate>

                </asp:UpdatePanel>

JB 是我调用查询数据库的 dll。我想指出这一点。函数正在触发,控制文本正在被替换。但是,控件不会更新内容。

4

1 回答 1

0

在 ImageButton1 和 ImageButton2 click 事件触发之前,更新面板不会更新。当您为更新面板编写触发器时。在要更新的页面加载初始化中,您必须调用 imagebutton1。在页面加载中调用 buttonclick 编写代码 imagebutton1.PerformClick()

private void init() 
{
  curr = 0;
  Max= 10;
  ImageButton1_Click(null, new ImageClickEventArgs(0, 0));
}
于 2013-11-30T06:13:04.507 回答