加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在使用服务器端分隔符时转义字符

发布时间:2020-12-16 07:40:15 所属栏目:asp.Net 来源:网络整理
导读:所以,目前,在asp gridview中,我有以下内容 span id="btnEdit" runat="server" onclick="ShowEditCriteriaFilterDialog('%#Eval("intSMCID")%','%#Eval("strDescription")%')" class="linkText"Edit/span 我实际上正在寻找的是引号/双引号的语法来实际完成这
所以,目前,在asp gridview中,我有以下内容

<span id="btnEdit" runat="server" onclick="ShowEditCriteriaFilterDialog('<%#Eval("intSMCID")%>','<%#Eval("strDescription")%>')" class="linkText">Edit</span>

我实际上正在寻找的是引号/双引号的语法来实际完成这一点,因为我上面的内容不能正常工作.

首先,如果我用单引号封装整个onclick,而不在其中放入任何其他引号,它可用于渲染目的,但是当我在运行时实际单击链接时,没有任何反应.

如果我使用双引号封装整个onclick,就像ASPX元素的大多数属性一样,它不能正确呈现,以及逗号之后的所有内容,它位于第一个<%#Eval%>之后语句在屏幕上显示为实际文本.这让我相信需要进行一些转义,以防止它认为点击处理程序在那个<%#Eval%>中间某处结束了.声明.

请注意,如果我拿走runat =“server”并将其封装在双引号中,那似乎工作得更好……但是我需要跨度作为服务器端控件,我在页面中有很多其他功能我需要通过FindControl访问控件的代码

解决方法

Eval函数需要双引号,因此您必须将属性值包装在单引号中.

您不能混合静态内容和<%#...%>使用runat =“server”控件的单个属性值中的块,因此您需要在单个<%#...%>内构建整个字符串.块.

在<%#...%>中的字符串中阻止,您可以使用&插入单引号:
编辑仅适用于.NET 4.0;在2.0中,它生成& amp;’,这将不起作用.改为使用双引号:

onclick='<%# string.Format(
   "ShowEditCriteriaFilterDialog("{0}","{1}")",Eval("intSMCID"),Eval("strDescription")) %>'

根据您的数据,您可能还需要对JavaScript的字符串值进行编码:

onclick='<%# string.Format(
   "ShowEditCriteriaFilterDialog("{0}",HttpUtility.JavaScriptStringEncode(Eval("strDescription","{0}"))) %>'

(为了便于阅读而包含的代码 – 它需要在一行上.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读