2009-12-09 48 views
0

我需要爲DataGrid模板列中的兩個按鈕添加一個觸發器。我發現有一些貼子說要使用UniqueID將代碼放在代碼隱藏中。如何將asyncPostBackTrigger添加到模板列,項目模板,DataGrid中的按鈕

有些東西與我的邏輯不符(或者它可能不在正確的位置)。當我運行它時,出現「對象引用未設置爲對象的實例」錯誤。

我得到這個在我的「gridSelectTrigger.ControlID = btnSessionSelect.UniqueID」語句。

此邏輯是否需要在「ItemDataBound」事件中?或者我的邏輯錯了?

<%@ Page Title="Admin Session Folders" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="AdminAddEditReleaseAndFiles.aspx.vb" Inherits="AdminAddEditReleaseAndFiles" Theme="Standard" %> 



                     

<asp:Panel ID="pnlEditTopic" runat="server" CssClass="modalPopupEditTopic" Style="display: none;" > 
    <table cellspacing="0" class="borderTable0" width="100%" style=""> 
     <tr style="height:4px"> 
      <td colspan="6" align="center"> 
       <asp:ImageButton ID="btnAddTopic" runat="server" AlternateText="Add Topic" 
        ImageUrl="~/App_Themes/Common/images/BtnApply.jpg" Height="28px"> 
       </asp:ImageButton> 
       <asp:ImageButton ID="btnUpdateTopic" runat="server" AlternateText="Update Topic" 
        ImageUrl="~/App_Themes/Common/images/BtnApply.jpg" Height="28px"> 
       </asp:ImageButton> 
       <asp:ImageButton ID="btnDeleteTopic" runat="server" AlternateText="Delete Topic" 
        ImageUrl="~/App_Themes/Common/images/BtnDelete.jpg" Height="28px"> 
       </asp:ImageButton> 
       <asp:ImageButton ID="btnEditTopicClose" runat="server" AlternateText="Close Edit Topic Popup" 
        ImageUrl="~/App_Themes/Common/images/BtnCancel.jpg" Height="28px"> 
       </asp:ImageButton> 
      </td> 
     </tr> 
    </table> 
</asp:Panel> 

</ContentTemplate> 
</asp:UpdatePanel> 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 

If Not (IsPostBack) Then 
    Dim MainContent As ContentPlaceHolder = TryCast(Page.Master.FindControl("ContentPlaceHolder1"), ContentPlaceHolder) 
    Dim UpdatePanelSessions As UpdatePanel = TryCast(MainContent.FindControl("UpdatePanelSessions"), UpdatePanel) 
    Dim btnSessionSelect As Button = TryCast(UpdatePanelSessions.FindControl("btnSessionSelect"), Button) 
    Dim btnSessionDetail As Button = TryCast(UpdatePanelSessions.FindControl("btnSessionDetail"), Button) 
    Dim gridSelectTrigger As AsyncPostBackTrigger = New AsyncPostBackTrigger 
    Dim gridDetailTrigger As AsyncPostBackTrigger = New AsyncPostBackTrigger 
    gridSelectTrigger.ControlID = btnSessionSelect.UniqueID 
    gridSelectTrigger.EventName = "Click" 
    UpdatePanelSessions.Triggers.Add(gridSelectTrigger) 
    gridDetailTrigger.ControlID = btnSessionDetail.UniqueID 
    gridDetailTrigger.EventName = "Click" 
    UpdatePanelSessions.Triggers.Add(gridDetailTrigger) 
    End If 

End Sub 

謝謝 詹姆斯

回答

0

明白了。更新面板需要兒童作爲觸發器設置爲true。

相關問題