[英]Javascript method call from code behind
我访问了从代码隐藏处调用Java脚本和其他一些用户标记为重复的问题。 但是针对我的问题,它们都没有帮助。
我已经建立了CMS,我需要更改使用用户控件构建的模块之一。 我不能在此将runat="server"
属性添加到form
和head
标签。
我有一个
<asp:GridView ID="gdvResxKeyValue" runat="server" Width="100%"AutoGenerateColumns="False">`</asp:GridView>`
和
<asp:TreeView ID="tvList" ShowLines="True" runat="server" ImageSet="Msdn" OnSelectedNodeChanged="tvList_SelectedNodeChanged">
<SelectedNodeStyle CssClass="sfSelectednode" />
</asp:TreeView>
gdvResxKeyValue
被绑定,而在树状视图中选择节点。
protected void tvList_SelectedNodeChanged(object sender, EventArgs e)
{
gdvResxKeyValue.DataSource = lstResDef;
gdvResxKeyValue.DataBind();
this.Page.ClientScript.RegisterStartupScript(this.GetType(),LocalizationGlobalVariable5", string.Format("edition();"), true);
}
在gdvResxKeyValue
最后一列,我有一张图像
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="imgEditResxValue" CssClass="sfEdit" runat="server" ImageUrl="~/Administrator/Templates/Default/images/imgedit.png" />
</ItemTemplate>
</asp:TemplateField>
并且我需要使用javascript(使用jquery-1.9.1.js的缩小版)的图片点击处理程序。 所以写的代码是..
<script type="text/javascript">
//<![CDATA[
$.Localization = {
TextAreaID: 0,
FilePath: "",
ID: 0,
GridID: '<%=gdvResxKeyValue.ClientID%>'
};
function edition() {
$('#'+ $.Localization.GridID).on('click', 'img[class="sfEdit"]', function () {
var index = $(this).attr("alt");
$.Localization.ID = index;
var data = $('#' + $.Localization.GridID + ' textarea[title="' + index + '"]').val();
$('#txtResxValueEditor').val(data);
ShowPopUp("editorDiv");
});
}
</script>
但这是行不通的。
尝试将网格放入div包装器:
<div id="myDiv">
....<asp:GridView ID="gdvResxKeyValue"....
</div>
和JavaScript:
$('#myDiv .sfEdit').click(function(){
alert('called');
});
编辑:刚注意到您在每个回发(树视图的Change事件)上都调用了启动脚本注册。 不需要 只需包括您的JavaScript文件,例如:
$(document).ready(function(){
$('#myDiv .sfEdit').click(function(){
var imgId = $(this).attr('id');
alert('called ' + imgId);
});
});
并将gridview保持在div包装器中,如上所述。
而是在单击图像时调用javascript方法。 准备好文档后,我编写了以下代码,终于解决了我的问题。
$(document).on('click', "#" + $.Localization.GridID + ' img.sfEdit', function (e) {
var index = $(this).attr("alt");
$.Localization.ID = index;
var data = $('#' + $.Localization.GridID + ' textarea[title="' + index + '"]').val();
$('#txtResxValueEditor').val(data);
ShowPopUp("editorDiv");
e.preventDefault();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.