2015-11-06 55 views
0

这里是我的方案ListView控件作为UpdatePanel的触发器..按钮控件在asp.net

  • 我有一个ListView控件在我的ASP.NET页面。
  • listview绑定到数据源。

  • 接着的ListView的ItemTemplate利用用户控制其 包括按钮的。

  • ListView嵌套在UpdatePanel中。

  • 我想将updatepanel的触发器设置为UC的按钮。

我遇到了很多答案,但无法建立可行的解决方案。 UC容器

标记UC

<div class="form-group"> 
     <asp:TextBox ID="txtAnswer" runat="server"></asp:TextBox> 

    </div> 
    <div class="form-group text-right">   
     <asp:LinkButton ID="btnUpdateAns" runat="server" OnClick="btnUpdateAns_Click">Update</asp:LinkButton> 
     <asp:LinkButton ID="btnDelete" runat="server" OnClick="btnDelete_Click" OnClientClick="return confirm('Are you sure to delete the answer?')" CausesValidation="False">Delete</asp:LinkButton> 
    </div> 

标记

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 
    <asp:ListView ID="AnswerList" runat="server" DataSourceID="DS_Question"> 
    <ItemTemplate> 
     <itstar:AnswerControl runat="server" ID="ansBox" propAnswerID='<%# Eval("AnswerID") %>' propQuestionID='<%# Eval("QuestionID") %>'/> 
    </ItemTemplate> 
    </asp:ListView> 
</ContentTemplate> 
<Triggers> 

</Triggers> 
</asp:UpdatePanel> 
+0

添加ASPX标记,这将是更有帮助。 – Prabhat

回答

0

如果您的按钮是内部的ListView,那么你可以设置Asycronous职位的UpdatePanel上的按钮单击ListView控件的RowDataBound

protected void AnswerList_ItemDataBound(object sender, ListViewItemEventArgs e) { 
    LinkButton lb = e.Item.FindControl("btnUpdateAns") as LinkButton; 
    toolscriptmanagerID.RegisterAsyncPostBackControl(lb); // ToolkitScriptManager 
} 

如果你需要完整的帖子后面你可以RegisterPostBack为控制ol.May这link将帮助你在这种情况下。

+0

我已经在listview的itemDataBound事件中使用你的代码。看起来像FindControl函数总是返回** null **。 –

+0

是你的BtnUpdateAns在ListView的AnswerList里面吗? –

+0

是的。它在ListView>用户控制> btnUpdateAns中。由于ListView绑定到DataSource。届时将有页 –