asp CommandArgument='' UserID为单引号时报错

wuxiaohua80 2012-04-10 01:38:01
<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中显示时会报错。如何修改啊各位大侠
...全文
481 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxiaohua80 2012-04-16
  • 打赏
  • 举报
回复
怎么没有人给我回复了啊,我已经纠结好几天了。。。
色拉油 2012-04-13
  • 打赏
  • 举报
回复
CommandArgument='<%#Bind("UserID") %>'
xp19840522 2012-04-13
  • 打赏
  • 举报
回复
Eval绑定应该没有问题,你应该是在后台代码取值的时候出现了问题,因为Eval取得的数据类型是Object,所以你在取值的时候,当UserID是Int类型时你应该这么取:int id=int.Parse(e.CommandArgument.ToString())
孟子E章 2012-04-13
  • 打赏
  • 举报
回复
GetUrl的代码是怎么写的啊
zwxcql 2012-04-13
  • 打赏
  • 举报
回复
OnClientClick='<%# GetUrl(Eval("UserID").ToString(),"3") %>'

OnClientClick这个是要写JS脚本,不能调用后台方法
zwxcql 2012-04-13
  • 打赏
  • 举报
回复
Text='<%# GetUrl(Convert.ToString(Eval("UserID")),"3")%>'>

GetUrl方法你确定有返回值吗
wuxiaohua80 2012-04-13
  • 打赏
  • 举报
回复
如果我在后台数据绑定的时候把单引号换成其他的字符就不会报错了
this.gvManage.DataSource = resultList;
for (int i = 0; i < resultList.Count; i++)
{
resultList[i].UserID = resultList[i].UserID.Replace("'", "asd");
}
this.gvManage.DataBind();
就是不知道为什么,小弟向各位大侠求助啊。。。。
wuxiaohua80 2012-04-13
  • 打赏
  • 举报
回复
楼上的这位大侠,你给的方法我也试了,还是不行的啊。
wuxiaohua80 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

GetUrl的代码是怎么写的啊
[/Quote]

public string GetUrl(string userId, string type)
{
if (type == "1")
{
return "return InitPwd('" + userId + "');";
}
else if (type == "2")
{
return "return LockPwd('" + userId + "');";
}
else if (type == "3")
{
return "return DeleteUser('" + userId + "');";
}

return string.Empty;
}
好像和geturl的方法没什么关系啊。我也试过把
OnClientClick='<%# GetUrl(Eval("UserID").ToString(),"3") %>'这个给注释掉,但是依然会由js错
蝶恋花雨 2012-04-12
  • 打赏
  • 举报
回复
<%# GetUrl(Eval("UserID").ToString(),"3")
改成

<%=GetUrl(Eval("UserID").ToString(),"3")
后台写的方法要用<%=%>而不是#
wuxiaohua80 2012-04-12
  • 打赏
  • 举报
回复
六、七楼给的方法还是不行啊。
wuxiaohua80 2012-04-12
  • 打赏
  • 举报
回复
<asp:TemplateField HeaderText="削除">
<ItemTemplate>
<asp:ImageButton ID="btnDel" runat="server" ImageUrl="../Resource/Image/NewImage/btn_Delete_d.gif" AlternateText="削除"
CommandArgument='<%# Eval("UserID") %>' onmouseover="smartMouserOver(this);" onmouseout="smartMouserOut(this);" CommandName="Del"
OnClientClick='<%# GetUrl(Eval("UserID").ToString(),"3") %>'/>
</ItemTemplate>
<ItemStyle CssClass="TitleLeftTD" Width="47px"/>
</asp:TemplateField>



楼上的各位大侠实在是抱歉我把问题的错误原因弄错位置了,而是在'<%# GetUrl(Eval("UserID").ToString(),"3") %>'位置出错的。geturl是后台的方法。
zhou_xuexi 2012-04-11
  • 打赏
  • 举报
回复
CommandArgument='<%#Bind("UserID") %>' 这样应该就没有问题了
孟子E章 2012-04-11
  • 打赏
  • 举报
回复
CommandArgument='<%# Eval("UserID").ToString().Replace("'","'") %>'
bu在服务区 2012-04-11
  • 打赏
  • 举报
回复
要不你试试。。。转译字符吧 。。。。。。。

wuxiaohua80 2012-04-10
  • 打赏
  • 举报
回复
具体应该是js警告,最终结果任然能正常的显示
wuxiaohua80 2012-04-10
  • 打赏
  • 举报
回复
UserID是一个string类型的现在的情况是UserID="'"时再ie9中不会报错,再ie6中就报js错了
错误提示是:缺少“)”。
这种情况下如何修改
laichunlin 2012-04-10
  • 打赏
  • 举报
回复
CommandArgument='<%# Eval("UserID") %>'
是单引号的话就代表'<%# Eval('这是一个字符串
') %>'这是另外一个字符串 中间还有一个UserID不知道是什么类型
故而报错!
bu在服务区 2012-04-10
  • 打赏
  • 举报
回复
现在这样写有什么问题么? CommandArgument='<%# Eval("UserID") %>'

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧