1

我一遍又一遍地寻找,并没有找到干净的解决方案。我的一位同事确实找到了一个非常肮脏的解决方案,但我不明白为什么当我将其放在母版页中时,下面的链接参考中的解决方案不起作用。我有一个基本上有一个文本框和一个链接按钮的母版页,当我按下回车键时,会调用子页面的默认按钮。

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. 在 asp.net 中将链接按钮设置为 asp:panel 的默认按钮(艾哈迈德的解决方案)

请对此有任何见解?谢谢 :)

明天上班时,我将发布肮脏的解决方案。

编辑:这是肮脏的(我认为)解决方案:

string id = ctlToClick.UniqueID;
string someJavascript = //see below
EmailTextBox.Attributes.Add("OnKeyPress", someJavascript);

javascript(把它放在这里以便 StackOverflow 可以更好地格式化它):

javascript:if (window.event){
    if(parseInt(window.event.keyCode) == 13){
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + id + "', '', true, 'Login', '', false, true));
    return false;
    }
}

这真的是唯一的解决方案吗?

4

2 回答 2

1

您是否尝试设置defaultButton属性?

<form id="Form1"
        defaultbutton="lnkNextPage" 
        runat="server">

控件的IDlnkNextPage在哪里。LinkButton

于 2010-12-07T05:24:17.527 回答
0

我认为您需要一个简单的 javascript 来控制您的制表符/输入键。在没有办法使默认按钮解决方案工作之前,我遇到过这个问题。

这个想法很简单 - 检查在文本框中输入的每个键。如果按下的键是 enter 或 tab,则通过 jquery 或 document.GetElementById('id') 找到按钮并调用按钮上的单击事件。

表单的默认按钮在 asp.net 中不起作用,因为 a):只有 1 个表单,b):对于不同的文本框,您希望能够控制实际单击哪个按钮(在选项卡/输入上)。

一个简单的 javascript 文件解决了这个问题。

<bleepzter/>
于 2010-12-08T02:44:54.140 回答