我有一个 aspx 页面,它有一个文本框和一个提交按钮。在文本框中输入数据并点击按钮会显示一个 ListView 控件,该控件显示从数据库中检索到的数据。Listvew 具有排序、分页和编辑功能。 对于其中的每一个,相应的方法都会在服务器端触发......例如: lv_sorting lv_Edit 等 如果用户在文本框中输入数据并按下回车键,Page.IsPostback 在 IE 浏览器中返回为 false,但在 Firefox 中返回为 true(任何想法, 为什么会这样?)。
当回发为真时,相应的方法被调用。 lv_sorting 等 但是由于在 Page_Load 事件中,当回发为 false 时,我只从数据库中提取数据,因此页面在 firefox 浏览器中不显示任何数据。
我需要在 firefox 浏览器中按下回车键时在 ListView 中显示数据。 我尝试使用 DefaultButton="submitBtnId"并在文本框中按下回车键时强制调用按钮单击,但没有成功。
谢谢。
仅供引用,这是在文本框中按下回车键时调用的 javascript 代码:
function clickButton(e, buttonid) {
var bt = document.getElementById(buttonid);
if (typeof bt == 'object') {
if (navigator.appName.indexOf("Netscape") > (-1)) {
if (e.keyCode == 13) {
if (bt && typeof (bt.click) == 'undefined') {
bt.click = addClickFunction1(bt)
}
}
}
if (navigator.appName.indexOf("Microsoft Internet Explorer") > (-1)) {
if (event.keyCode == 13) {
bt.click();
return false;
}
}
}
}
function addClickFunction1(bt) {
var result = true;
if (bt.onclick) result = bt.onclick();
if (typeof (result) == 'undefined' || result) {
eval(bt.href);
}
}
最佳答案
当按下 enter 时,Internet Explorer 不提交按钮;其他浏览器做。这意味着在这些情况下不会触发按钮的单击事件。谢天谢地,它是 possible to set a default button在 ASP.NET 2.0 中。
一旦您让所有浏览器一致地点击按钮,您应该在按钮的点击事件触发时从数据库加载值,而不是在页面加载时。
关于asp.net - 为什么在 firefox 浏览器的文本框中按回车键会将 Page.IsPostback 值设置为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1693382/