日期:2014-05-19  浏览次数:20356 次

|M| 如何把<A>这样的东西写成服务器按钮 急啊大家看看
我的环境
比如我有
<a   href= "b.aspx "   target= "_brank "> 打印 </a>
然后我想要点击这个 <A> 的时候
缴活服务器事件FindPrintID()
这个事件最终要给a   的href   如   href= "b.aspx?PrintID=1|2|4|7 "
然后把开新页面

开始我是用ASP:Button来做的
如程序
ID=....这里得到1|2|4|7
PrintID= "b.aspx? "+ID;
response.write( " <script> window.open( "+PrintID+ ") </script> ")
这样,但是如果浏览器禁止了出窗口的话就完完了

还有如何控件
<a   href= "123.aspx "   target= "_brank "> 新窗口 </a>
打开的新窗口的大小


谢谢

------解决方案--------------------
没有办法。
------解决方案--------------------
用HyperLinkButton控件
------解决方案--------------------
难点,帮顶
------解决方案--------------------
也就是点击将A作为服务器控件 点击他的时候给他的href赋值 ======> 可是可以用hyperlink控件就可。 但这多做了一次提交,没有必要。
------解决方案--------------------
用LinkButton or HyperLink
------解决方案--------------------
根据以上情况,我把他归结为两个问题:1.如何在客户端触发服务器端事件.2.根据服务器端的返回值动态设定 <A> 的HREF的值.我这样表达确切吗?
我的想法:在一个DIV中用JS动态生成 <A> ,并用客户端回调获取服务器端值.
可行吗?
------解决方案--------------------
foreach (DataGridItem item in dgOrder.Items)
{
CheckBox ck_print = (CheckBox)item.FindControl( "ck_print ");
if (ck_print.Checked)
{
ID += ck_print.Attributes[ "PrintValue "].ToString() + "| ";
}
}
ID = ID.Substring(0, ID.Length - 1);
HyperLink lnk=new HyperLink();
this.Page.Form.Controls.Add(lnk);
lnk.NavigateUrl= "Print.aspx?ID= " + ID;
lnk.Target= "_blank ";
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "open print page ",
lnk.ClientID+ ".click(); ",true);

------解决方案--------------------
换成 <asp:Button即可,为什么要用A ?
搞清楚B/S结构的程序特点就明白该如何做了