ASP.NET LinkButton 前端获取文本与 doPostBack 机制解析
本文解析 ASP.NET 中 LinkButton 控件的前端交互机制。通过 OnClientClick 事件传递 this 对象,利用 JavaScript 解析 doPostBack 生成的 href 属性,提取控件 ID 并获取其 innerText 显示文本,适用于需要在前端获取服务器控件实际内容的场景。
ASP.NET LinkButton 前端获取文本与 doPostBack 机制解析
在 ASP.NET 页面中,使用 LinkButton 控件并配置 OnClientClick 事件以触发前端脚本,同时返回 false 阻止默认回发行为,示例代码如下:<asp:LinkButton ID="BtnBaiyakuNo" runat="server" OnClientClick="openNo(this); return false;" TabIndex="0" />
定义前端 JavaScript 函数 openNo,接收 sender 参数作为触发事件的元素对象。
{
在函数内部,通过 sender.toString() 获取元素的 href 属性字符串,利用 split("'") 分割提取出控件的唯一标识符部分,并将其中的美元符号 $ 替换为下划线 _,得到 linkNo 变量。
使用 document.getElementById(linkNo) 根据处理后的 ID 获取对应的 DOM 元素,并通过 innerText 属性读取其显示的文本内容,该值即为所需的 strNo。
}
上述前端操作对应的后台生成的 HTML 源代码结构如下。
<a onclick="openNo(this); return false;" id="ctl00_MainContent_BtnBaiyakuNo" href="javascript:__doPostBack('ctl00$MainContent$BtnBaiyakuNo','')">my0000001</a>
具体变量对应关系解析如下。
sender 对象在调用 toString() 后,其 href 属性值为 javascript:__doPostBack('ctl00$MainContent$BtnBaiyakuNo',''),这是 ASP.NET 自动生成的回发脚本。
经过字符串分割和替换处理后,linkNo 变量被解析为 ctl00_MainContent_BtnBaiyakuNo,这与 HTML 中 a 标签的 id 属性一致。
最终通过 ID 获取元素文本,strNo 的值为 my0000001,即 LinkButton 在页面上显示的实际内容。
为什么叫JavaScript:语言命名由来及与Java的历史渊源
2026-11-05 11:37:48
JS获取当前时间年月日时分秒并格式化为YYYY-MM-DD HH:mm:ss
2026-11-04 21:25:21
不同语言间JS与Java/Python加密结果不一致怎么办
2026-11-04 18:27:23
Mock.js 拦截 Axios 和 Fetch 请求的原理与配置方法
2026-11-04 08:13:59
JS怎么获取当前日期并格式化为YYYY-MM-DD
2026-11-03 18:47:03
