asp CommandArgument='<%# Eval("UserID") %>' UserID为单引号时报错
<asp:GridView Width="715px" BorderWidth="0" ID="gvManage" runat="server" AutoGenerateColumns="False"
ShowHeader="False" OnRowCommand="GvManage_RowCommand"
DataKeyNames="UserID" OnRowDataBound="GvManage_RowDataBound"
TabIndex="11" >
<Columns>
<asp:TemplateField HeaderText="変更">
<ItemTemplate>
<asp:ImageButton ID="btnUpd" runat="server" ImageUrl="../Resource/Image/NewImage/btn_Update_d.gif" AlternateText="変更"
CommandArgument='<%# Eval("UserID") %>' onmouseover="smartMouserOver(this);" onmouseout="smartMouserOut(this);" CommandName="Upd" />
</ItemTemplate>
<ItemStyle CssClass="TitleLeftTD" Width="47px"/>
</asp:TemplateField>
UserID为单引号时在IE9中不会报错,但是在IE6中显示时会报错。如何修改啊各位大侠
------解决方案--------------------CommandArgument='<%# Eval("UserID") %>'
是单引号的话就代表'<%# Eval('这是一个字符串
') %>'这是另外一个字符串 中间还有一个UserID不知道是什么类型
故而报错!
------解决方案--------------------要不你试试。。。转译字符吧 。。。。。。。
------解决方案--------------------CommandArgument='<%# Eval("UserID").ToString().Replace("'","'") %>'
------解决方案--------------------CommandArgument='<%#Bind("UserID") %>' 这样应该就没有问题了
------解决方案--------------------<%# GetUrl(Eval("UserID").ToString(),"3")
改成
<%=GetUrl(Eval("UserID").ToString(),"3")
后台写的方法要用<%=%>而不是#
------解决方案--------------------Text='<%# GetUrl(Convert.ToString(Eval("UserID")),"3")%>'>
GetUrl方法你确定有返回值吗
------解决方案--------------------OnClientClick='<%# GetUrl(Eval("UserID").ToString(),"3") %>'
OnClientClick这个是要写JS脚本,不能调用后台方法
------解决方案--------------------GetUrl的代码是怎么写的啊
------解决方案--------------------Eval绑定应该没有问题,你应该是在后台代码取值的时候出现了问题,因为Eval取得的数据类型是Object,所以你在取值的时候,当UserID是Int类型时你应该这么取:int id=int.Parse(e.CommandArgument.ToString())
------解决方案--------------------CommandArgument='<%#Bind("UserID") %>'