aspx 中的链接按钮不返回数据
本文关键字:返回 数据 按钮 链接 aspx | 更新日期: 2023-09-27 18:33:17
这是我在aspx中的网格视图代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"
Width="294px" onselectedindexchanged="GridView1_SelectedIndexChanged"
>
<Columns>
<asp:BoundField DataField="FID" HeaderText="FID" SortExpression="FID" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server"
CommandArgument='<%Eval("FID")%>' OnClick="DownloadFile"
Text="Download" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
SelectCommand="SELECT [FID], [Name] FROM [Personal_det]">
</asp:SqlDataSource>
以下是网格视图的显示方式:
FID NAME
M001 Faculty1 download
M002 Faculty2 download
M003 Faculty3 download
如您所见,下面提到的是我的 C# 代码,用于根据他们的 FID 下载教师的特定信息,但此代码不返回任何内容。
protected void DownloadFile(object sender, EventArgs e)
{
string FID = ((LinkButton)sender).CommandArgument;
var dt = GetData("select * from Personal_det where FID='" + FID + "'");
if (dt != null && dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
Document doc = new Document(PageSize.A4, 88f, 88f, 10f, 10f);
Font NormalFont = FontFactory.GetFont("Arial", 12, Font.NORMAL, BaseColor.BLACK);
using (System.IO.MemoryStream m = new System.IO.MemoryStream())
{
PdfWriter w = PdfWriter.GetInstance(doc, m);
Phrase phrase = null;
PdfPCell cell = null;
PdfPTable table = null;
// BaseColor color = null;
Paragraph para = null;
Font times = null;
BaseFont bfTimes = null;
doc.Open();
table = new PdfPTable(2);
cell = PhraseCell(new Phrase("Faculty Profile", FontFactory.GetFont("Arial", 12, Font.UNDERLINE, BaseColor.BLACK)), PdfPCell.ALIGN_CENTER);
//table.SpacingBefore = 20f;
cell.Colspan = 2;
table.AddCell(cell);
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 30f;
//FID
table.AddCell(PhraseCell(new Phrase("Faculty Code:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
table.AddCell(PhraseCell(new Phrase("mahe" + dr["FID"].ToString(), FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
//Name
table.AddCell(PhraseCell(new Phrase("Name:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
table.AddCell(PhraseCell(new Phrase(dr["Name"].ToString(), FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
//Date of Birth
table.AddCell(PhraseCell(new Phrase("Date of Birth:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
table.AddCell(PhraseCell(new Phrase(Convert.ToDateTime(dr["DOB"]).ToString("dd MMMM, yyyy"), FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
//Phone Number
table.AddCell(PhraseCell(new Phrase("Phone Number:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
table.AddCell(PhraseCell(new Phrase(Convert.ToInt64(dr["MobileNo"]).ToString(), FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
//Mail Id
table.AddCell(PhraseCell(new Phrase("Email ID:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
table.AddCell(PhraseCell(new Phrase(dr["EmailId"].ToString(), FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
//Address
table.AddCell(PhraseCell(new Phrase("Res Address:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)), PdfPCell.ALIGN_LEFT));
phrase = new Phrase(new Chunk(dr["add1"] + "'n " + dr["add2"] + "'n " + dr["add3"] + "'n " + dr["Pincode"], FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)));
table.AddCell(PhraseCell(phrase, PdfPCell.ALIGN_LEFT));
cell = PhraseCell(new Phrase(), PdfPCell.ALIGN_CENTER);
cell.Colspan = 2;
cell.PaddingBottom = 10f;
table.AddCell(cell);
table.SpacingAfter = 30f;
doc.Add(table);
//Education Details
PdfPTable tabl = new PdfPTable(2);
tabl.SpacingBefore = 10f;
bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
times = new Font(bfTimes, 12f, Font.UNDERLINE);
para = new Paragraph("Education Details:", times);
para.Alignment = Element.ALIGN_LEFT;
doc.Add(para);
//tabl.BorderWidth=1;
//tabl.BorderColor=new BaseColor(0,0,255);
//cell = new PdfPCell(new Phrase("Education Detail"));
//cell.Headers=true;
cell.HorizontalAlignment = 1;
cell.Colspan = 4;
cell.Rowspan = 2;
cell.BorderColor = new BaseColor(0, 0, 0);
DataRow dr1 = GetData("select * from Education_det ").Rows[0];
tabl.AddCell(new Phrase("Degree:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase(dr1["Degree"].ToString(), FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase("Year:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase(Convert.ToInt32(dr1["year"]).ToString(), FontFactory.GetFont("Arial", 8, Font.NORMAL, BaseColor.BLACK)));
tabl.AddCell(new Phrase("Institution:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase(dr1["Institution"].ToString(), FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase("Specialization:", FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
tabl.AddCell(new Phrase(dr1["Specialization"].ToString(), FontFactory.GetFont("Arial", 8, Font.BOLD, BaseColor.BLACK)));
cell.Rowspan = 2;
cell.Colspan = 2;
tabl.AddCell(cell);
tabl.SpacingAfter = 30f;
doc.Add(tabl);
}
试试这个:
.ASPX:
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server"
CommandArgument='<%Eval("FID")%>' OnClick="DownloadFile"
Text="Download" />
</ItemTemplate>
</asp:TemplateField>
代码隐藏:
protected void DownloadFile(object sender, EventArgs e)
{
string FID = ((LinkButton)sender).CommandArgument;
var dt = GetData("select * from Personal_det where Fid='" + FID + "'");
//and so on
}
使用它,在 ASPX 页中添加此代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
Width="294px" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server" CommandArgument='<%Eval("FID")%>'
CommandName="DownloadFile" Text="Download" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后添加代码隐藏 (ASPX.cs)
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "DownloadFile")
{
//write your code here
}
}
您正在使用创建PDF
使用ItextSharp
。在这一点上,你忘了doc.Close();
后doc.Open();
doc.Add(tabl);
添加doc.Close();
后,它就可以工作了。