这个问题对某些人来说可能听起来很愚蠢,但我必须确定一下。
iv'e 得到了一个不可见的控件(visible = false) 我希望它在某些条件下变得可见,例如 onmoueover 某个文本框,
我可以在服务器控件上执行此类客户端事件吗?
iv'e 注意到,如果控件设置为在服务器上运行,我什至无法发出 onmouseover 事件。
总而言之,有没有一种方法可以使服务器控件从客户端可见而无需 必须发回服务器。
感谢之前的回答,但我遇到了一个新问题:
我的控件是一个放置在内容页面内的日历,
当我单击文本框时,我希望它出现,但当它设置为 Visible=false 时 客户端脚本无法找到它:
function Show_Calander() {
debugger;
var c = document.getElementById('<%= calander1.ClientID %>');
c.visible = true;
}
<input type="text" id="txt_date" runat="server" onclick="Show_Calander();"/>
<asp:Calendar ID="calander1" runat="server" Visible="False"></asp:Calendar>
我可以在服务器端执行此操作,但我只是想通过不为每件小事都访问服务器来提高性能。
我有什么想法可以实现这一点吗?
最佳答案
是的,这对于 javascript 来说当然是可能的。每个控件都有一个 ClientID
属性,可用于从 javascript 引用它。下面是一个使用 jQuery 的快速示例,介绍如何使特定的 Asp.Net 控件在单击事件上可见
<asp:TextBox ID="txtUsername" Runat="server" />
<button id='theButton'>Make it Visible</button>
JQuery 代码
$(document).ready(function() {
$('#theButton').click(function() {
var id = '#' + '<%= txtUsername.ClientID %>';
$(id).show();
});
});
关于javascript - 从客户端引用 asp 服务器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462656/