2016-04-07 4 views
0

У меня есть две кнопки и GridView, которые:ASP.NET - кнопка Включение считывая данные в табличном виде в панели Update

<asp:Button ID="btn-search" runat="server" OnClick=btn_search_Click /> 
<asp:Button ID="btn-export" runat="server" OnClick=btn_export_Click /> 
<asp:GridView ID="gridview1" runat="server" /> 

btn-search является управляющим для привязки данных к gridview1 из SqlDataSource. btn-export отключен на Page_Load и будет включен, если gridview1 имеет хотя бы одну строку (btn-export будет оставаться отключенным, если нет данных/строк в gridview1).

Сначала я написал это в коде позади:

protected void btn_search_Click(object sender, EventArgs e) 
    { 
     /* Binding data to GridView */ 
     if (this.gridview1.Rows.Count > 0) 
     { 
      this.btn_export.Enabled = true; 
     } 
    } 

, и она работала.

Но, тогда я обернуть gridview1 в UpdatePanel так оно не обновлять всю страницу, когда связывание данных в GridView, используя btn-search в AsyncPostBackTrigger.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:Button ID="btn-search" runat="server" OnClick=btn_search_Click /> 
<asp:Button ID="btn-export" runat="server" OnClick=btn_export_Click /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:GridView ID="gridview1" runat="server"> 
      <Columns> 
      </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btn_search" /> 
</Triggers> 
</asp:UpdatePanel> 

Когда данные были связаны с gridview1, то btn-search еще отключен. Я пытаюсь написать this.btn_export.Enabled = true в событиях GridView и UpdatePanel, таких как OnDataBound, OnDataBinding, OnRowDataBound, но он по-прежнему не работает.

ответ

0

Grayfield, это не работает, потому что, когда вы нажимаете кнопку поиска, обновляется только содержимое панели обновлений. Попробуйте добавить кнопки внутри ContentTemplate панели обновления, и она должна работать.

+0

О, спасибо. Я не понимал, что: D – grayfield