我在这里使用的gridview在不同的模板字段中有许多链接按钮,它们在做各种不同的事情。但是,此特定的LinkButton必须在单击时打开本地保存的pdf,这是没有发生的。
.aspx:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbViewPaper" runat="server" CommandName="viewpaper" CommandArgument='<%#Eval ("name") %>' >View Paper</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
名称是pdf文件的名称,也是表示数据库中相同名称的列。
其背后的代码如下:
protected void gvPaper_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "viewpaper")
{
{
LinkButton lbViewPaper = sender as LinkButton;
//GridView row = lbViewPaper.NamingContainer as GridViewRow;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
DataTable dt = new DataTable();
using (SqlDataAdapter sda = new SqlDataAdapter("select path from tblQPaper where name='" + e.CommandArgument.ToString().Trim() + "' and uploader= '" + Session["user"] + "'", con))
{
sda.Fill(dt);
}
string urlName = dt.Rows[0]["path"].ToString();
//// Removing the Page Name
////Adding FolderName and FileName in the URL
Response.Write(urlName); //URL is being returned correctly here
string script = "<script type='text/javascript'>window.open('" + urlName + "')</script>";
this.ClientScript.RegisterStartupScript(this.GetType(), "script", script);
}
}
}
我知道我的查询很糟糕,将来会使用参数化的方法。
单击按钮后,将打开一个带有“ about:blank”的新标签。没有显示任何内容,浏览器也未加载该URL。
任何帮助将不胜感激!谢谢!