使用<button>代替<input />和.Net </button>

时间:2013-07-23 14:13:18

标签: webforms

我正在尝试设置由.net创建的网页。所以我在一些按钮和其他元素上遇到问题。我的主要问题是瓶子,因为在设计模板中使用了一些圆形按钮等但.Net不断给出<input>元素:(

使用<asp:Button>创建<input>元素,但我应该使用什么来获取<button>元素?因为我无法将样式应用于<input>元素。

我已经询问了页面的代码,我没有对此进行编码,因此我不知道它是否是MVC。我只需要在渲染的HTML中获得...。我可以对我的编码器朋友说什么才能使这项工作成功?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Portall.Admin.Login" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Login</title>
    <link href="../css/style.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="dvMainContainer">
            <div class="header" >
                <span>Login</span>
            </div>
            <div class="dvLoginInfo">
                <table>
                    <tr>
                        <td>Username</td>
                        <td>
                            <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td>
                            <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><asp:Button ID="cmdLogin" runat="server" Text="Login" OnClick="cmdLogin_Click" /></td>
                    </tr>
                    <tr>
                        <td colspan="2"><asp:Label ID="lblInfo" runat="server" ForeColor="Red"></asp:Label></td>
                    </tr>
                </table>
            </div>
        </div>
    </form>
</body>
</html>

文件背后的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Portall.Admin
{
    public partial class Login : System.Web.UI.Page
    {
        AdminBL.AdminBusinessLayer adminBsLayer = new AdminBL.AdminBusinessLayer();

        protected void Page_Load(object sender, EventArgs e)
        {
            lblInfo.Text = string.Empty;
        }

        protected void cmdLogin_Click(object sender, EventArgs e)
        {
            AdminUser currentUser = null;

            try
            {
                currentUser = adminBsLayer.Login(txtUserName.Text, txtPassword.Text);
            }
            catch
            {
                lblInfo.Text = "A database problem occured.";
                return;
            }

            if (currentUser.UserId <= 0)
            {
                lblInfo.Text = "Invalid username or password.";
                return;
            }

            Session["AdminUser"] = currentUser;
            Response.Redirect("UserEntry.aspx");
        }

    }
}

2 个答案:

答案 0 :(得分:3)

下载CSSFriendyControlAdapters并使用它来创建按钮服务器控件。你可以在这里找到它:

http://cssfriendly.codeplex.com/

只需看看最简单的控件,它应该很容易修改它以发出一个按钮。您不必更改现有控件,而是使用适配器。

如果你不关心有太多的控制和渲染选项,你可以简单地使用内置的HTMLButton控件:

<tr>
  <td>
    <button ID="cmdLogin" runat="server" OnServerClick="cmdLogin_Click">
         Login
    </button>
  </td>
</tr>

答案 1 :(得分:1)

使用<asp:ImageButton />可以添加我需要的任何样式,即背景图片,渐变等。 有关使用reffer Microsoft site

的更多信息