asp.net,在GridView中动态添加a标签并带数据参数跳转,并且要再后台控制a标签
<asp:gridview><Columns><ItemTemplate><aid="aaa"runat="server"href="abc.aspx?ID=<%#Eva...
<asp:gridview>
<Columns><ItemTemplate>
<a id="aaa" runat="server" href="abc.aspx?ID=<%#Eval("ID")%>" ><a>
</ItemTemplate></Columns>
</gridview>
但貌似 runat=server 和 ?ID=<%#Eval("ID")%> 有冲突,去掉任意一个都能成功,
但一起写报错 “服务器标记的格式不正确”
求教 展开
<Columns><ItemTemplate>
<a id="aaa" runat="server" href="abc.aspx?ID=<%#Eval("ID")%>" ><a>
</ItemTemplate></Columns>
</gridview>
但貌似 runat=server 和 ?ID=<%#Eval("ID")%> 有冲突,去掉任意一个都能成功,
但一起写报错 “服务器标记的格式不正确”
求教 展开
5个回答
展开全部
楼主我知道你的是什么问题了!!!!!!!!!!!!!!!!!!!!!!
如果你加runat="server" 那<%#这东东会被htmlEncode()掉,如果你不加runat="server",那你在后台又得不到这个a的控件。下面我告诉你这个解决方法:
<asp:gridview>
<Columns><ItemTemplate>
<asp:LinkButton ID="aaa" runat="server">LinkButton</asp:LinkButton>
<asp:HiddenField ID="bbb" runat="server" value='<%#Eval("ID")>' />
</ItemTemplate></Columns>
</gridview>
后端在GridView1_RowDataBound方法中这样写:
LinkButton aaa=e.Row.FindControl("aaa") as LinkButton ;
HiddenField bbb=e.Row.FindControl("bbb") as HiddenField ;
aaa.PostBackUrl="~/abc.aspx?ID"+bbb.Value.Trim();
如果你加runat="server" 那<%#这东东会被htmlEncode()掉,如果你不加runat="server",那你在后台又得不到这个a的控件。下面我告诉你这个解决方法:
<asp:gridview>
<Columns><ItemTemplate>
<asp:LinkButton ID="aaa" runat="server">LinkButton</asp:LinkButton>
<asp:HiddenField ID="bbb" runat="server" value='<%#Eval("ID")>' />
</ItemTemplate></Columns>
</gridview>
后端在GridView1_RowDataBound方法中这样写:
LinkButton aaa=e.Row.FindControl("aaa") as LinkButton ;
HiddenField bbb=e.Row.FindControl("bbb") as HiddenField ;
aaa.PostBackUrl="~/abc.aspx?ID"+bbb.Value.Trim();
展开全部
href="abc.aspx?ID=<%#Eval("ID")%>"
这一行代码中的引号有问题?应该如下吧?
href="abc.aspx?ID=<%" + #Eval("ID") + "%>"
这一行代码中的引号有问题?应该如下吧?
href="abc.aspx?ID=<%" + #Eval("ID") + "%>"
追问
开始我也以为是双引号嵌套问题 ,但试了试 ,好像不是这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<li><a href="#" ></a><p><a href="##"></a></p></li>
runat="server"标识是服务器控件
ID=<%#Eval("ID")%>是获取
runat="server"标识是服务器控件
ID=<%#Eval("ID")%>是获取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,你要在模版里面写 比如:
<asp:TemplateField HeaderText="案例类型">
<ItemTemplate>
<a id="aaa" runat="server" href=‘abc.aspx?ID=<%#Eval("ID")%>’ ><a>
</ItemTemplate>
</asp:TemplateField>
这样
<asp:TemplateField HeaderText="案例类型">
<ItemTemplate>
<a id="aaa" runat="server" href=‘abc.aspx?ID=<%#Eval("ID")%>’ ><a>
</ItemTemplate>
</asp:TemplateField>
这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
runat="server"这个去掉呗,你要这个干嘛呀?
更多追问追答
追问
因为我想 再后台控制其可见,e.Row.FindControl("aaa").Visible = true;
追答
你直接设置e.Row.Cells[].visible就行吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询