2015-11-06 48 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。屆時將有頁 –