Trong trang của tôi, tôi có một LinkButton bên trong bộ lặp, nhưng UpdatePanel không thể tìm thấy LinkButton đến AsyncPostBackTrigger.Làm thế nào để thực hiện AsyncPostBackTrigger cho LinkButton trong Repeater
Đây là mycode.aspx
<asp:ScriptManager ID="Test1" runat="server" />
<asp:UpdatePanel ID="TestUpdate" runat="server" UpdateMode="Always">
<ContentTemplate>
<table width="100%">
<tr valign="top">
<td width="50%">
<asp:Repeater ID="productList" runat="server" onitemcommand="productList_ItemCommand">
<HeaderTemplate>
<ul type="disc">
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:Label id="L1" runat="server" Text='<%# Eval("productName") %>'></asp:Label><br />
Price:
<asp:Label runat="server" Text='<%# Eval("productPrice") %>' ></asp:Label> Bath<br />
<img alt="" src="Images/product/product<%# Eval("productID") %>.png" style="width: 200px; height: 130px" /><br />
<asp:TextBox ID="num_product" runat="server" Text="0"></asp:TextBox><br />
<asp:LinkButton ID="order_button" runat="server"><img alt="" src="~/Images/button/order.png" /></asp:LinkButton>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<td>
<span class="labelText">Order list</span>
<asp:BulletedList ID="orderList" runat="server" BulletStyle="Numbered">
</asp:BulletedList>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
Đây là mycode.aspx.cs
protected void productList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//button
/*LinkButton btn = new LinkButton();
btn.ID = "order_button";
btn.Click += LinkButton1_Click;
Test1.RegisterAsyncPostBackControl(btn);*/
LinkButton btn = (LinkButton)e.Item.FindControl("order_button");
btn.Click += LinkButton1_Click;
Test1.RegisterAsyncPostBackControl(btn);
/*AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btn.ClientID;
trigger.EventName = "Click";
TestUpdate.Triggers.Add(trigger);*/
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
//string name = ProductName1.Text.ToString();
//int price = System.Convert.ToInt32(ProductPrice1.ToString(), 10);
//int number = System.Convert.ToInt32(TextBox1.ToString(),10);
//orderList.Items.Clear();
//orderList.Items.Add(new ListItem(name));
//ListItem product1 = new ListItem();
//product1.Text = name;
orderList.Items.Add("test");
}
Tôi đã thử nhiều phương pháp, nhưng trang vẫn làm mới. Bạn có gợi ý nào không?
Cảm ơn bạn rất nhiều. Đó là công việc!!! – user1128331
Cảm ơn Eugene. Đã dành rất nhiều thời gian cho tôi. Chúc mừng –
Tôi cần phải làm ngược lại điều này - làm cho một nút liên kết trong bộ lặp lại thực hiện một postback đầy đủ thay vì một postback không đồng bộ từ bên trong updatepanel. Điều này làm việc hoàn hảo cho điều đó. Tôi chỉ sử dụng 'scripMan.RegisterPostBackControl (btn)' thay thế. – ahwm