将linkbutton设置为asp.net中asp:panel的默认按钮[复制]
如何在asp.net中将链接按钮设置为asp:panel的默认按钮?我知道按钮可以设置为默认值,但我的应用程序使用所有表单的链接按钮.任何建议如何做到这一点. 编辑: 现在我试过这个, var __defaultFired = false;
function WebForm_FireDefaultButton(event,target) {
var element = event.target || event.srcElement;
if (!__defaultFired && event.keyCode == 13 && !(element && (element.tagName.toLowerCase() == "textarea"))) {
var defaultButton;
if (__nonMSDOMBrowser)
defaultButton = document.getElementById(target);
else
defaultButton = document.all[target];
if (defaultButton) {
if (typeof (defaultButton.click) != "undefined")
defaultButton.click();
else
eval(unescape(defaultButton.href.replace("javascript:","")));
event.cancelBubble = true;
if (event.stopPropagation) event.stopPropagation();
return false;
}
}
return true;
}
第二次编辑: 我能够使我的自定义linkbutton控件工作,但无法将OnClientClick挂钩到它.来源using-panel-defaultbutton-property-with-linkbutton-control-in-asp-net. 我这样做了 <%@ Register Namespace="App_Code" TagPrefix="ac" %>
<asp:Label runat="server" ID="lblHello" />
<asp:Panel runat="server" DefaultButton="lbHello">
First name: <asp:TextBox runat="server" ID="txtFirstName" />
<ac:LinkButtonDefault ID="lbHello" runat="server" Text="Click me"
OnClientClick="javascript:alert('hai');" OnClick="lbHello_Click" />
</asp:Panel>
我的客户端功能不起作用?任何建议. 解决方法您可以采用添加属性的简单方法来处理文本框的onKeyPress事件,而不是使用自定义控件.这正确处理从文本框中按Enter键并触发LinkButton事件.这种方法的缺点是在Firefox中不会触发任何LinkButton OnClientClick事件,这与您链接到的博客文章中描述的问题有关.只有当用户用鼠标实际点击链接时才会触发它.但是,在IE中,它将从文本框和直接单击触发.解决方案#1 – 添加属性的代码如下: protected void Page_Load(object sender,EventArgs e)
{
txtFirstName.Attributes.Add("onKeyPress","javascript:if (event.keyCode == 13) __doPostBack('" + lbHello.ClientID + "','')");
}
试试看,看看它是否符合你的需求.请记住我之前描述的限制. 现在,如果您希望上述限制消失,那么该博客文章中的one of the comments显示了一种似乎正常工作的方法.我已经修改它以摆脱StringBuilder并将其转换为C#. 解决方案#2 – 添加函数并注册它的代码如下: protected void Page_PreRender(object sender,EventArgs e)
{
string addClickFunctionScript = @"function addClickFunction(id) {
var b = document.getElementById(id);
if (b && typeof(b.click) == 'undefined')
b.click = function() {
var result = true;
if (b.onclick) result = b.onclick();
if (typeof(result) == 'undefined' || result)
eval(b.getAttribute('href'));
}
};";
string clickScript = String.Format("addClickFunction('{0}');",lbHello.ClientID);
Page.ClientScript.RegisterStartupScript(this.GetType(),"addClickFunctionScript",addClickFunctionScript,true);
Page.ClientScript.RegisterStartupScript(this.GetType(),"click_" + lbHello.ClientID,clickScript,true);
}
页面标记 – <asp:Label runat="server" ID="lblHello" />
<asp:Panel ID="Panel1" runat="server" DefaultButton="lbHello">
First name:
<asp:TextBox runat="server" ID="txtFirstName" />
<asp:LinkButton ID="lbHello" runat="server" Text="Click me" OnClick="lbHello_Click"
OnClientClick="javascript:alert('Hello,World!');"/>
</asp:Panel>
在这两种情况下,都不需要自定义控件来实现此类功能.把事情简单化. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 为什么当我更改响应时AuthenticationManage
- asp.net – 我可以在URL中使用逗号吗?
- 在经典ASP调试的Visual Studio 2012中禁用了应用程序调试
- 为什么NuPack生成的NinjectMVC3.cs无法编译? (或者ASP.NET
- 使用NUnit与ASP.NET WebApi控制器执行集成测试
- asp.net-mvc – 抛出一个404像StackOverflow的,没有重定向,
- 如何以编程方式将ListItems添加到ASP.NET中的DropDownList?
- asp.net-mvc – VIEWDATA和VIEWBAG存储在MVC中的哪个位置?
- asp.net – 无法加载文件或程序集“Oracle.DataAccess”或其
- asp.net-mvc-4 – Elmah.MVC 2.0.1 – 保护elmah日志
- asp.net-mvc – 为什么需要为Html.Action定义的路
- asp.net – 为什么我需要PUT或DELETE Http Verbs
- ASP.NET Azure中的Trace.WriteLine
- 从ASP.Net中的sessionID获取会话对象
- asp.net-mvc-3 – 使用ViewData将字符串从Contro
- 是否有必要创建ASP.NET 4.0 SQL会话状态数据库,与
- 有没有办法将一个onclick事件添加到ASP.NET标签服
- asp.net – 如何连接RDLC表达式中的值?
- asp.net-core – 如何使用ASP.NET注册OData 5
- asp.net-mvc – 在剃刀视图中启用和禁用文本框(A
