UpdatePanel называется AsyncPostBack, но элемент управления внутри панели обновления не изменяется
Моя панель обновлений вызывает функцию, и во время процесса отладки я видел, что содержимое обновляется до соответствующего элемента управления. Однако ничего не меняется. Если бы я должен был переключиться на обратную передачу, это работает.
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 - это моя база данных для вызываемых запросов. Я хотел бы указать на это. Функция срабатывает, а управляющий текст заменяется. Тем не менее, элемент управления не обновляет содержимое.
1 ответ
Панель обновления не будет обновляться до тех пор, пока не начнутся события щелчка ImageButton1 и ImageButton2. как вы пишете триггеры для панели обновления. в загрузке страницы init вы хотите обновить, затем вы должны вызвать imagebutton1. Чтобы позвонить, нажмите кнопку, введите код в загрузке страницы. imagebutton1.PerformClick()
private void init()
{
curr = 0;
Max= 10;
ImageButton1_Click(null, new ImageClickEventArgs(0, 0));
}