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

关于VS2005的GridView
有两绑定列绑定了某表的标题与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>
------解决方案--------------------