2013-08-21 38 views
1

我有一個更新面板和包含gridview的窗體。當用戶點擊ImageButton時,會顯示一個顯示「處理」的div,頁腳將顯示空文本框用於數據輸入和保存目的。我發現保存按鈕工作正常,但不是標題中的ImageButton。當我點擊ImageButton時,除非我刪除了UpdatePanel,否則它不會觸發。任何建議?UpdatePanel下的GridView頭中的ImageButton沒有觸發

<asp:UpdatePanel runat="server" ID="UpdatePanel1" > 
     <ContentTemplate> 
      <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"> 
       <Columns> 
        <asp:TemplateField ShowHeader="False"> 
         <HeaderTemplate><center> 
         <asp:ImageButton ID="ImgAdd" AlternateText="Add" runat="server" 
          ImageUrl="~/img/tDocumentAdd.png" Width="15" Height="15" 
          OnClick="ImgAdd_Click" CausesValidation="false" /></center> 
         </HeaderTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 
      <asp:Button runat="Server" id="bthSave" OnClick="SaveData" /> 
     </ContentTemplate> 

回答

1

這可能是因爲圖像按鈕位於網格視圖的標題部分內。嘗試把預渲染事件並註冊的ImageButton作爲回傳控制

的.aspx

<HeaderTemplate><center> 
    <asp:ImageButton ID="ImgAdd" AlternateText="Add" runat="server" 
    ImageUrl="~/img/tDocumentAdd.png" Width="15" Height="15" 
    OnClick="ImgAdd_Click" onprerender="ImgAdd_PreRender" /></center> 

代碼背後

protected void ImgAdd_PreRender(object sender, EventArgs e) 
{ 
    ImageButton btn=sender as ImageButton; 
    ScriptManager sc = ScriptManager.GetCurrent(this.Page); 
    sc.RegisterPostBackControl(btn); 
} 
+0

喜尼莎,我把你的代碼和現在的ImageButton onclick事件可以被解僱。非常感謝。 但它似乎顯示在頁面頂部的div不工作....任何想法? –

+0

是updatePanel裏面的div嗎?你能不能顯示aspx代碼? – Nisha

+0

請注意,'ImgAdd'按鈕將以完整的回發進行工作,即無論更新面板如何,整個頁面都將被回發。如果此答案對您有幫助,請使用勾號標記爲答案。 – Nisha

0
Try this code !!!.aspx!!! 
<HeaderTemplate><center> 
    <asp:ImageButton ID="ImgAdd" AlternateText="Add" runat="server" 
    ImageUrl="~/img/tDocumentAdd.png" Width="15" Height="15" 
    OnClick="ImgAdd_Click" onprerender="ImgAdd_PreRender" /></center> 
    code behind`enter code here !!! (.cs)` !!! 
protected void ImgAdd_PreRender(object sender, EventArgs e) 
    { 
    ImageButton btn=sender as ImageButton; 
    ScriptManager sc = ScriptManager.GetCurrent(this.Page); 
    sc.RegisterPostBackControl(btn); 
    }` 
相關問題