說明:點選GridView內LinkButton後,使用JavaScript的window.showModalDialog開啟並傳值到子視窗。使用showModalDialog是因為可凍結母視窗。
作法:
Parent.aspx
<asp:BoundField DataField="File_ID" HeaderText="檔案代碼" />
<asp:BoundField DataField="File_Path" HeaderText="檔案路徑" />
<asp:TemplateField HeaderText="下載">
<ItemTemplate>
<asp:LinkButton ID="lbtnDownload" runat="server" OnCommand="FileDownload" CommandArgument='<%# Eval("File_Path") %>'>
</ItemTemplate>
</asp:TemplateField>
//Parent.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//使用FindControl找到GridView控制項內的LinkButton控制項
LinkButton lbtnDownload = (LinkButton)e.Row.FindControl("lbtnDownload");
string strFile_ID = e.Row.Cells[0].Text;
lbtnDownload.OnClientClick = "javascript:window.showModalDialog(Child.aspx?File_ID=" + strFile_ID + "', '', 'resizable:no;status:no;scroll:no;dialogHeight:80px;dialogWidth:200px;')";
}
}
//Child.aspx
<head runat="server">
//目標為子視窗自身
<base target="_self">
</head>
...
<asp:HiddenField ID="hidFileID" runat="server" />
//Child.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["File_ID"] != null)
{
hidFileID.Value = Request.QueryString["File_ID"];
}
}
參考資料:
http://toyo0103.blogspot.tw/2012/10/showmodaldialog.html
沒有留言:
張貼留言