有两绑定列绑定了某表的标题与ID,现在定义一个模板列,让其Text为标题,并且实现点击弹出新页面并传递ID显示具体内容,第1列为ID,第2列为标题,第3列为模板列,我的js方法名叫NewPage参数为ID,以前在2003里都是在ItemDataBound里写
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lbtnView= (LinkButton)e.Item.Cells[2].FindControl( "lbtnTitle ");
lbtnView.Text = e.Item.Cells[1].Text;
lbtnView.Attributes.Add( "onclick ", "NewPage( ' " + e.Item.Cells[0].Text + " '); ")
现在不想用Attributes来扩展了,而且2005里e.Item也没有了
所以试过前台的另外两个方法:T_TITLE为表里的标题字段名
<asp:TemplateField HeaderText= "标题 ">
<ItemTemplate>
<asp:LinkButton ID= "lbtnView " runat= "server " Text= " <%# Eval( "T_TITLE " , "onclick= 'javascript:NewPage({0}) ' ") %> " > </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
这个说服务器标记的格式不正确
还有
<ItemTemplate>
<div onclick= "javascript:NewPage( <%# Eval( "T_TITLE ") %> ) "> </div>
</ItemTemplate>
这个倒是能运行,但是不知道怎么给其Text值
请问现在有什么方法还能实现这个功能.谢谢!
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
试试
<asp:TemplateField>
<ItemStyle HorizontalAlign= "Center " Width= "40px " />
<ItemTemplate>
<span style= "cursor:hand; " onclick= "javascript:NewPage( <%# DataBinder.Eval(Container.DataItem, "T_TITLE ")%> ) "> <%# DataBinder.Eval(Container.DataItem, "T_TITLE ")%> </span>
</ItemTemplate>
</asp:TemplateField>
------解决方案--------------------------------------------------------
<asp:LinkButton ID= "lbtnView " runat= "server " Text= " <%# Eval( "T_TITLE " , "onclick= 'javascript:NewPage({0}) ' ") %> " > </asp:LinkButton>
改成
<asp:LinkButton ID= "lbtnView " runat= "server " Text= ' <%# Eval( "T_TITLE " , "onclick=\ 'javascript:NewPage({0})\ ' ") %> ' > </asp:LinkButton>
--------------
注意 <%# %> 外面和里面的 "及 '号问题
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
<asp:LinkButton ID= "lbtnView " runat= "server " Text= ' <%# Eval( "T_TITLE " , "onclick=\ "javascript:NewPage(\ "{0}\ ")\ " ") %> ' > </asp:LinkButton>
------解决方案--------------------------------------------------------
你加入一个Hyperlink1 将其设为模板列就可以了 target =_self;
Hyperlink1.text=DataBinder.eval(container,DataRow.text);
string str=DataBinder.eval(container,DataRow.ID);
Hyperlink.NavigateUrl= "~/newpage.aspx?ID=str ";
------解决方案--------------------------------------------------------
<asp:LinkButton ID= "lbtnView " runat= "server " Text= <%# Eval( "T_TITLE ") %> OnClick= <%# ( "javascript:NewPage({0}) ") %> > </asp:LinkButton>
------解决方案--------------------------------------------------------