首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET DefaultButton和MasterPages

ASP.NET DefaultButton和MasterPages
EN

Stack Overflow用户
提问于 2011-05-23 13:23:38
回答 3查看 5.4K关注 0票数 5

在我的网站,我有一个搜索功能,在母版页(没有设置默认按钮,也没有形式)。在内容页面中,我有一个登录名,在那里我使用带有默认按钮的asp面板。但是当我在登录文本框上单击enter时,我的站点就会继续到search事件处理程序.可能是什么原因?

一些代码:

代码语言:javascript
复制
//on content page

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Write(Button1.Text);
}

    <asp:Panel ID="pnl1" runat="server" DefaultButton="Button1">
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:LinkButton ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
    </asp:Panel>

//on master page:

protected void btnSearch_Click(object sender, EventArgs e)
{
    if (!txtSearch.Text.Equals(""))
    {
        Response.Redirect("searchresults.aspx?search=" + txtSearch.Text);
    }
}

<div id="searchbar">
    <asp:TextBox ID="txtSearch" CssClass="searchbar-field" runat="server"></asp:TextBox>
    <asp:Button ID="btnSearch" CssClass="searchbar-btn" runat="server" Text="Zoek" OnClick="btnSearch_Click" />
</div>

Button OK找到了解决方案:它需要使用而不是 LinkButton**.那就没事了.**

EN

回答 3

Stack Overflow用户

发布于 2011-05-23 13:28:21

只需在页面加载时设置页面上的默认按钮:

您可以使用面板的FindControl方法(这是VB)访问按钮。

代码语言:javascript
复制
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    Me.Form.DefaultButton = pnl1.FindControl("Button1").UniqueID

End Sub
票数 2
EN

Stack Overflow用户

发布于 2011-05-24 06:55:11

发现问题时,我认为需要使用的是Button而不是LinkButton。那就没问题了。

票数 2
EN

Stack Overflow用户

发布于 2011-07-26 17:03:14

在加载登录控件的任何页面的标记中,需要在两处更新html。

首先,在页面的表单标记中,您需要设置默认按钮。看下面我是怎么想出这个名字的。

代码语言:javascript
复制
<form id="form1" runat="server" defaultbutton="ucLogin$btnSubmit">

(命名:美元符号之前的ucLogin部分需要是登录控件的ID,如页面中所声明的那样)。btnSubmit部件需要是按钮的ID,因为它是在登录控件的html中命名的)

接下来,您需要将登录控件的声明包装在面板中,并设置它的DefaultButton属性:

代码语言:javascript
复制
<!-- Login Control - use a panel so we can set the default button -->
<asp:Panel runat="server" ID="loginControlPanel" DefaultButton="ucLogin$btnSubmit">                         
     <uc:Login runat="server" ID="ucLogin"/>                                                    
</asp:Panel>

那应该是为了你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6097807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档