【发布时间】:2015-07-03 19:35:14
【问题描述】:
谁能帮助我如何使用 Jquery 识别或捕获自定义 Web 控件并访问其客户端功能?
我在 asc.net 中创建了一个 Web 控件(.ascx),就像示例中一样。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs" Inherits="MyControl" %>
<asp:Panel ID="myPanel" runat="server">
<asp:TextBox ID="myText" runat="server" />
</asp:Panel>
<script type="text/javascript">
function showMessage(){
var txt = $('<%= this.myText.ClientID %>')
alert(txt.val());
}
</script>
然后,我想将此控件放置在网络表单 (.aspx) 中的转发器中
<table>
<asp:Repeater ID="myRepeater" runat="server">
<ItemTemplate>
<tr>
<td>
<Pre:MyControl ID="myControl" runat="server" />
<input type="button" id="myButton" onclient="sendData(this);" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
在同一页面中,我想管理我对当前行的控制,我点击旁边的按钮,这是我的疑问。
在我的函数 sendData 中,我想做这样的事情:
function sendData(sender){
var row = $(sender).closest('tr');
var ccontrol = row.find(*******) // 1.
ccontrol.showMessage(); // 2.
}
- 在这里,我想用 Jquery 来控制我。我可以通过 ID 找到它,例如 row.find([id*='myControl']),但我如何才能将其识别为对象。
- 这里我要调用当前控件的客户端函数
编辑:当我这样做时:
var ccontrol = row.find("[id*='myControl']");
我在开发者工具中得到这个(调试)
<div id="myRepeater_myControl_4_myPanel_4">
<div id="myRepeater_myControl_4_myPanel_4">
<input name="myRepeater$ctl04$myControl$myText" type="text" value="hello world" id="myRepeater_myControl_4_myText_4">
</div>
,
<input name="myRepeater$ctl04$myControl$myText" type="text" value="hello world" id="myRepeater_myControl_4_myText_4">
我很高兴知道如何将它作为一个对象获取并访问 showMessage()。
当我的控件被渲染时,我可以在视图源中看到转发器正在 html 中显示我的控件,并且对于每个控件,函数 showMessage 单独显示。我想把它封装起来。
【问题讨论】:
标签: javascript c# jquery asp.net web-controls