默认LinkBut​​ton输入主页面

时间:2010-12-07 03:30:35

标签: c# asp.net master-pages defaultbutton asplinkbutton

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

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. set linkbutton as default button for asp:panel in asp.net(艾哈迈德的解决方案)
  3. 对此有何见解?谢谢:))

    我明天上班时会发布脏解决方案。

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

    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;
        }
    }
    

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

2 个答案:

答案 0 :(得分:1)

您是否尝试设置defaultButton属性?

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

其中lnkNextPageLinkButton控件的ID。

答案 1 :(得分:0)

我认为你需要一个简单的javascript来控制你的tab / enter键。在没有办法让默认按钮解决方案工作之前,我遇到了这个问题。

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

表单的默认按钮在asp.net中不起作用,因为a):只有1个表单,而b):对于不同的文本框,你希望能够控制实际点击的按钮(在tab / enter上) )。

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

<bleepzter/>