웹 응용 프로그램에서 작업 중이므로 Excel로 목록보기를 내보낼 수 있어야합니다. 목록 뷰가 바인딩되어 있지만 데이터 내보내기 기능이 작동하지 않습니다. 이 기능은 <asp:LinkButton>
및 <asp:Imagebutton>
에 걸려있는 것으로 보입니다. 이 문제를 해결하는 방법을 알고있는 사람이 있습니까?Excel로 목록보기 내보내기 (문제 해결)
public void ExportIntoExcel(ListView lvExport, string Header, string FileName)
{
try
{
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + FileName + ".xls");
System.Web.HttpContext.Current.Response.Charset = "";
System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter stringWrite = new StringWriter();
stringWrite.Write(Header);
stringWrite.WriteLine();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
HtmlForm frm = new HtmlForm();
lvExport.Parent.Controls.Add(frm);
frm.Controls.Add(lvExport);
frm.RenderControl(htmlWrite);
System.Web.HttpContext.Current.Response.Write(stringWrite.ToString());
}
catch (Exception ex)
{
}
finally
{
System.Web.HttpContext.Current.Response.End();
}
}
protected void export_Click(object sender, EventArgs e)
{
if (paidlv.Visible == true)
{
ExportIntoExcel(paidlv, "Income Summary", "incomesummary");
}
}
업데이트 : 여기에 전체의 목록보기가 그래서 당신은 <asp:LinkButton>s
및 <asp:Imagebutton>s
을 참조 할 수있다 .
<asp:ListView ID="paidlv" runat="server" OnPagePropertiesChanged="paidlv_PagePropertiesChanged" OnDataBound="paidlv_DataBound" OnSorting="paidlv_Sorting" Visible="true">
<LayoutTemplate>
<table class="detail">
<tr>
<th>
<asp:LinkButton ID="lnkdate" runat="server" CommandName="Sort" CommandArgument="pmtpaydate1">Date</asp:LinkButton>
<asp:Image runat="server" ID="SortRevImage5" ImageUrl="~/img/arrows.png" Visible="false" />
</th>
<th>
<asp:LinkButton ID="lnktname" runat="server" CommandName="Sort" CommandArgument="tname">Transaction Name</asp:LinkButton>
<asp:Image runat="server" ID="SortRevImage2" ImageUrl="~/img/arrows.png" Visible="false" />
</th>
<th>
<asp:LinkButton ID="lnkcname" runat="server" CommandName="Sort" CommandArgument="cname">Client Name</asp:LinkButton>
<asp:Image runat="server" ID="SortRevImage1" ImageUrl="~/img/arrows.png" Visible="false" />
</th>
<th>
<asp:LinkButton ID="lnkhalf" runat="server" CommandName="Sort" CommandArgument="pmtdesc1">Portion</asp:LinkButton>
<asp:Image runat="server" ID="SortRevImage3" ImageUrl="~/img/arrows.png" Visible="false" />
</th>
<th>
<asp:LinkButton ID="lnkamt" runat="server" CommandName="Sort" CommandArgument="pmtamt">Amount</asp:LinkButton>
<asp:Image runat="server" ID="SortRevImage4" ImageUrl="~/img/arrows.png" Visible="false" />
</th>
<th>Delete</th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
<div class="pager">
<asp:DataPager ID="paidpager" runat="server" PageSize="20" PagedControlID="paidlv">
<Fields>
<asp:NextPreviousPagerField ShowNextPageButton="False" ButtonCssClass="previousNextLink" />
<asp:NumericPagerField ButtonCount="10" ButtonType="Link" NumericButtonCssClass="numericLink" />
<asp:NextPreviousPagerField ShowPreviousPageButton="False" ButtonCssClass="previousNextLink" />
</Fields>
</asp:DataPager>
</div>
</LayoutTemplate>
<ItemTemplate>
<tr class="altRow rowcolor">
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lbldate"><%#Eval("pmtdate", "{0:d}") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lbltname"><%#Eval("tname") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblcname"><%#Eval("cname") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblhalf"><%#Eval("half").ToString() == "1" ? "First" : Eval("half").ToString() == "2" ? "Second" : "Full" %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblamt"><%#Eval("pmtamt", "{0:C}") %></asp:Label>
</td>
<td>
<asp:ImageButton runat="server" ID="btndelete" ImageUrl="~/img/delete.png" OnClick="btndelete_Click" PostBackUrl="~/transaction.aspx" CssClass="deletebutton" CommandArgument='<%#Eval("transactionid") %>' />
</td>
<asp:HiddenField runat="server" ID="lblrevid" Value='<%#Eval("transactionid") %>' />
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr class="rowcolor">
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lbldate"><%#Eval("pmtdate", "{0:d}") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lbltname"><%#Eval("tname") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblcname"><%#Eval("cname") %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblhalf"><%#Eval("half").ToString() == "1" ? "First" : Eval("half").ToString() == "2" ? "Second" : "Full" %></asp:Label>
</td>
<td class="valigntop" onclick="DoNav('<%# Eval("transactionid","bookdeal.aspx?tid={0}") %>');">
<asp:Label runat="server" ID="lblamt"><%#Eval("pmtamt", "{0:C}") %></asp:Label>
</td>
<td>
<asp:ImageButton runat="server" ID="btndelete" ImageUrl="~/img/delete.png" OnClick="btndelete_Click" PostBackUrl="~/transaction.aspx" CssClass="deletebutton" CommandArgument='<%#Eval("transactionid") %>' />
</td>
<asp:HiddenField runat="server" ID="lblrevid" Value='<%#Eval("transactionid") %>' />
</tr>
</AlternatingItemTemplate>
<EmptyDataTemplate>
<table id="empty">
<tr>
<td id="tdempty">
<br />
Sorry, no data found
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:ListView>
데이터에 의해 그것을 시도 할 수 있습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –
알겠습니다. 고마워요. – fcholmes