2016-01-16 1 views
0

У меня есть сетка в панели обновления. есть кнопка ссылки внутри grid-view, которая запускает команду export export в команде команды row. Существует еще один вид сетки, который экспортируется в этот код команды. Я отлаживаю, указатели идут, но экспорт не происходит. Я знаю, что я что-то пропустил здесь, но не смог получить его, потратив много часов. Менеджер сценариев находится на главной странице.export gridview to excel не работает с панелью Ajax и Update

Может ли кто-нибудь помочь пожалуйста. Ниже приведен код.

<asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
       <ContentTemplate> 
       <asp:GridView ID="grd_Report" runat="server" ShowFooter="true" CssClass="ui-jqgrid-btable table-hover" AutoGenerateColumns="false" AllowPaging ="true" PageSize ="12" > 
       <Columns> 

       <asp:TemplateField HeaderText="Name"> 
       <ItemTemplate> 
       <asp:Label ID="lbl_CampaignName" runat="server" Text='<%#Eval("Name") %>'></asp:Label> 
       </ItemTemplate> 
       <ItemStyle Width="100px" /> 
       <HeaderStyle Width="100px" /> 
       </asp:TemplateField> 

       <asp:TemplateField HeaderText="CreateDate"> 
       <ItemTemplate> 
       <asp:Label ID="lbl_CreateDate" runat="server" Text='<%#Eval("CreateDate") %>'></asp:Label> 
       </ItemTemplate> 
       <ItemStyle Width="130px" /> 
       <HeaderStyle Width="130px" /> 
       </asp:TemplateField> 


       <asp:TemplateField HeaderText="sender"> 
       <ItemTemplate> 
       <asp:Label ID="lbl_senderID" runat="server" Text='<%#Eval("sender") %>'></asp:Label> 
       </ItemTemplate> 
       <ItemStyle Width="85px" /> 
       <HeaderStyle Width="85px" /> 
       </asp:TemplateField> 


       <asp:TemplateField HeaderText="Text"> 
       <ItemTemplate> 
       <asp:Label ID="lbl_text" runat="server" Text='<%#Eval("Text") %>'></asp:Label> 
       </ItemTemplate> 
       <FooterTemplate> 
       <asp:DropDownList class="ui-pg-selbox" ID="drp_itemCount" runat="server" AutoPostBack="true" 
         onselectedindexchanged="drp_itemCount_SelectedIndexChanged" > 
       <asp:listItem>10</asp:listItem> 
       <asp:listItem>15</asp:listItem> 
       <asp:listItem>50</asp:listItem> 
       <asp:listItem>100</asp:listItem> 
       <asp:listItem>200</asp:listItem> 
       </asp:DropDownList> 
       </FooterTemplate> 

       <ItemStyle Width="375px" /> 
       <HeaderStyle Width="375px" /> 
       <FooterStyle HorizontalAlign="Center" /> 
       </asp:TemplateField> 


       <asp:TemplateField HeaderText="Count"> 
       <ItemTemplate> 
       <asp:Label ID="lbl_SMSCount" runat="server" Text='<%#Eval("Count") %>'></asp:Label> 
       </ItemTemplate> 
       <ItemStyle HorizontalAlign="Center" width="80px" /> 
       <HeaderStyle Width="80px" /> 
       </asp:TemplateField> 


       <asp:TemplateField HeaderText="Delivery Count"> 
       <ItemTemplate> 
       <table class="deliveryCount"> 
       <tr> 
       <td style="padding:5px;width:180px" colspan="2">Total: <%#Eval("Total")%></td> 
       </tr> 

       <table style="font-size:11px;width:180px;"> 
       <tr> 
       <td style="padding:5px;font-size:11px;width:80px">A: <%#Eval("A")%></td> 
       <td style="padding:5px;font-size:11px;width:80px">B: <%#Eval("B")%></td> 
       </tr 

        <tr> 
       <td style="padding:5px;font-size:11px;width:80px">2: <%#Eval("2")%></td> 
       <td style="padding:5px;font-size:11px;width:80px">1: <%#Eval("1")%></td> 
       </tr> 

       </table> 


       </ItemTemplate> 
       </asp:TemplateField> 



       <asp:TemplateField HeaderText="Download"> 
       <ItemTemplate> 
       <asp:LinkButton runat="server" ID="lnk_download" style="font-size:11px;" CommandName="download" CommandArgument='<%#Eval("CampaignId") %>' text="Download" class="ui-icon-document"></asp:LinkButton> 
       </ItemTemplate> 
       <ItemStyle HorizontalAlign="Center" width="100px" /> 
       <HeaderStyle Width="100px" /> 
       </asp:TemplateField> 



       </Columns> 
       <HeaderStyle HorizontalAlign="Center" Font-Size="13" Font-Bold="true" /> 
       <RowStyle Font-Names="Helvetica" Font-Size="10" /> 
       <PagerStyle CssClass ="gridviewPager" Height="30px" /> 
       </asp:GridView> 
       </ContentTemplate> 
       <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="grd_export" EventName="RowCommand" /> 
       </Triggers> 
       </asp:UpdatePanel> 



<asp:UpdatePanel ID="UpdatePanel6" runat="Server"> 
    <ContentTemplate> 
    <asp:GridView ID="grd_export" runat="server" Visible="false" AutoGenerateColumns ="false" > 
<Columns> 

<asp:TemplateField HeaderText="Name"> 
<ItemTemplate> 
<asp:Label ID="lbl_Name" runat="server" Text='<%#Eval("Name") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Number"> 
<ItemTemplate> 
<asp:Label ID="lbl_Number" runat="server" Text='<%#Eval("Number") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Id"> 
<ItemTemplate> 
<asp:Label ID="lbl_Id" runat="server" Text='<%#Eval("Id") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Text"> 
<ItemTemplate> 
<asp:Label ID="lbl_text" runat="server" Text='<%#Eval("Text") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="text Id"> 
<ItemTemplate> 
<asp:Label ID="lbl_MessageId" runat="server" Text='<%#Eval("textId") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Date"> 
<ItemTemplate> 
<asp:Label ID="lbl_Date" runat="server" Text='<%#Eval("Date") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Status"> 
<ItemTemplate> 
<asp:Label ID="lbl_Status" runat="server" Text='<%#Eval("Status") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Credits"> 
<ItemTemplate> 
<asp:Label ID="lbl_Credits" runat="server" Text='<%#Eval("Credits") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

</Columns> 
</asp:GridView> 
    </ContentTemplate> 

    </asp:UpdatePanel> 

Ниже приведен код на ряд команд событие

If e.CommandName = "download" Then 
     Dim str As String 
     str = " select * FROM [Box] where MsgId='" + e.CommandArgument + "'" 
     Dim com As New SqlCommand(str, con) 
     Dim da As New SqlDataAdapter(com) 
     Dim dt As New DataTable 
     da.Fill(dt) 

     If Not dt Is Nothing Then 
      If dt.Rows.Count > 0 Then 
       grd_export.DataSource = dt 
       grd_export.DataBind() 
       grd_export.Visible = True 
       Response.Clear() 
       Response.Cache.SetCacheability(HttpCacheability.NoCache) 
       Response.AddHeader("content-disposition", "attachment;filename=Message.xls") 
       Response.Charset = "" 
       Response.ContentType = "application/vnd.xls" 
       Me.EnableViewState = False 
       Dim stringwrite As System.IO.StringWriter = New System.IO.StringWriter 
       Dim htmlwrite As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(stringwrite) 
       grd_export.RenderControl(htmlwrite) 
       Response.Write(stringwrite.ToString()) 
       grd_export.Visible = False 
       Response.End() 


      End If 
     End If 

    End If 

ответ

0

Вы должны добавить postback trigger к вашему update panel для respose.write работать.

+0

hi Cosmos, я добавил ScriptManager.GetCurrent (Page) .RegisterPostBackControl (grd_Report), и на grd_report уже есть ответ на предыдущий ответ ansynchronus. – Vikky

+1

ScriptManager.GetCurrent (Page) .RegisterPostBackControl (grd_Report) вы регистрируете это только при загрузке, так что он должен работать – JustLearning

+0

, это все еще не работает – Vikky