【问题标题】:default LinkButton on enter in a Master Page进入母版页时的默认链接按钮
【发布时间】:2010-12-07 03:30:35
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 当你按下回车键时你想要什么?重定向到链接页面?

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


【解决方案1】:

您是否尝试设置defaultButton 属性?

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

其中lnkNextPageLinkButton 控件的ID。

【讨论】:

  • 是的,我试过了。该表单由 asp:textbox 和 asp:panel 内的 asp:linkbutton 组成,其中 defaultbutton 属性设置为 linkbutton 的 id。
  • "'Form1' 的 DefaultButton 必须是 IButtonControl 类型的控件的 ID。",这不起作用
【解决方案2】:

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

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

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

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

<bleepzter/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多