0

完全にn00bの質問です。私は、iPhoneで見栄えを良くするIUIフレームワークを使用するという工夫を加えて、最初のASP.NETWebサイトを作成しています。

  1. ホワイトボタンを接続してデータベースのユーザーとパスワードを確認するにはどうすればよいですか?
  2. パスワードが良かった場合、どうすればブラウザを別のウィンドウに移動させることができますか...
  3. 現在のページに「パスワードが正しくありません」などのメッセージを追加するにはどうすればよいですか?

私はデフォルトでac#プログラマーであり、この新しい分野で完全に失われています。IUIでは動作しないように見えないのでご注意ください。

マスター

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Cover_Plus.SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <meta name="viewport" id="viewport" content="width=device-width, user-scalable=0, initial-scale=1.0" />
    <link href="iui/iui.css" rel="stylesheet" type="text/css" />
    <link title="default" href="iui/t/default/default-theme.css" rel="stylesheet" type="text/css" />
    <script type="application/x-javascript" src="iui/iui.js"></script>

    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="apple-touch-icon" href="img/touch-icon-iphone.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="img/touch-icon-ipad.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="img/touch-icon-iphone4.png" />
    <link rel="apple-touch-startup-image" href="img/startup.png" />

    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> </asp:ContentPlaceHolder>
</head>
<body>
    <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</body>
</html>

Default.aspx

<%@ Page Title="Cover Plus" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Cover_Plus._Default" %>

<%--Header--%>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    <script type="text/javascript">

    </script>
</asp:Content>

<%--Body--%>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

<div class="toolbar">
    <h1 id="pageTitle">System Login</h1>
</div>
<div class="panel" selected="true" id="loginPanel"> 

    <h2>Login to Cover Plus</h2>
    <fieldset>
        <div class="row">
            <label>Name</label>
            <input type="text" name="ident" text="hhh" placeholder="Your login" />
        </div>
        <div class="row">
            <label>Password</label>
            <input type="password" name="password" placeholder="Your password" />
        </div>
    </fieldset>

    <form id="Form1" title="Index" name="formname" method="POST">
        <a class="whiteButton" type="submit" href="javascript:formname.submit()">Login me in!</a>
   </form>
</div>


</asp:Content>

アップデート :

スクリーンショットが役立つと思います。

ここに画像の説明を入力してください

問題は、「whitebutton」が私が使用しなければならないもののようであり、asp.netサーバー側のボタンとは異なり、クリックイベントをフックするために単純にダブルクリックすることはできないということです。

Humpty Dumptysメソッドを試しましたが、.CSファイルのVerify()メソッドがまったく呼び出されません。onclick = "Login();"で試してみました Javascript:Login();の代わりに どちらも機能しません。

更新2:

下部で動作しますが、テキストボックスへの入力を置き換えるとすぐに何が起こるかを確認してください...

ここに画像の説明を入力してください

よろしくお願いします

最終的解決 :

<div class="toolbar">
    <h1 id="pageTitle">Login</h1>
</div>

<div id="pnlLogin" class="panel" selected="true" >
    <h2>Login Details</h2>
    <form ID="fLogin" runat="server" class="panel" selected="true" > 
        <fieldset>
            <div class="row">
                <label>Name</label>
                <asp:TextBox id="txtUserName" runat="server" placeholder="Your username" />
            </div>
            <div class="row">
                <label>Password</label>
                <asp:TextBox id="txtPassword" textmode="Password" runat="server" placeholder="Your password" />
            </div>
        </fieldset>
        <asp:LinkButton id="btnLogin" class="whiteButton" text="Log me in!" runat="server" onclick="Login_Clicked" />
    </form> 
</div>

基本的に、フォームは「class = panel」で装飾され、asp:スタイルコントロールを使用してバックエンドに接続しました。

4

2 に答える 2

2

イベントのユーザー詳細を検証する必要がありますbuttonclick

にデータベースフィールドがusernameありpassword、ユーザー名とパスワードを受け入れてデータベースに対して検証する関数を作成できる場合。

例えば。ボタンクリックイベントでは、同様のことができます

var status = verifyUser(username,password);//might return Boolean value 
if(!status)
      somelable.text = "username or password incorrect";
else
     // do something - redirect to some page may be

ASP.NETサーバーコントロールの検証に関するこの記事も読んでください。asp.netメンバーシッププロバイダーを使用する場合は、ASP.NETでメンバーシップを使用し、メンバーシップユーザーに対してユーザー資格情報を検証してください。


それでも使用がわからない場合..。

これに似たコードを変更します

あなたの正面

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
   <fieldset>
        <div class="row">
            <label>Name :</label>            
            <asp:TextBox ID="txbUserName" runat="server"></asp:TextBox>
        </div>
        <div class="row">
            <label>Password :</label>
            <asp:TextBox ID="txbPassword" runat="server"></asp:TextBox>
        </div>
        <div class="row">
            <asp:Button ID="btnLogin" runat="server" Text="Button" CssClass ="whiteButton" 
                onclick="btnLogin_Click" />
            <asp:Label ID="lblError" runat="server" Text="Label"></asp:Label>
        </div>
    </fieldset>

</asp:Content>

バックエンド

protected void btnLogin_Click(object sender, EventArgs e)
    {
        var username = txbUserName.Text;
        var password = txbPassword.Text;
        if(!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
        {
            if(!VerifyUser(username,password))
            {
                lblError.Text = "username or password incorrect";
            }
        }
    }
    // I recommend this function to be in a separate class but for example 
    public static Boolean VerifyUser(string username,string password)
    {
        //
        return true or false
    }
于 2012-03-22T16:35:00.960 に答える
1

WebFormsは、使用しているように見えますが、通常、ページ全体にあります<form runat="server">。これは通常、MasterPageの一部として定義され(あなたの場合)、通常、タグ~/Site.masterの数行後にあります。<body>

サイトにこのフォームがある場合、サーバーとの通信はサーバー側のコントロール(でマークされているrunat="server")を介して処理されます。

<asp:TextBox ID="Username" Text="hhh" runat="server"
    placeholder="Your Login" />

<asp:TextBox ID="Password" TextMode="Password" runat="server"
    placeholder="Your password" />

<asp:LinkButton ID="Login" Text="Login me in!" runat="server"
    CssClass="whitebutton" OnClick="Login_Clicked" />

各サーバー側コントロールは、レンダリング中に生成される通常のHTMLを表すため、上記は次のようになります。

<input id="ct100_Username" name="ct100$Username" type="text" value="hhh" placeholder="Your Login" />

<input id="ct100_Password" name="ct100$Password" type="password" placeholder="Your password" />

<a id="ct100_Login" class="whitebutton" href="javascript:__doPostBack('ct100$Login','')">Login me in!</a>

(注:実際のクライアント側のIDと名前は、ここでの例とは大きく異なる場合があります。)

これらのサーバー側コントロールのID属性は通常、Pageクラスのプロパティ/フィールドにマップされるため、1番目を表すインスタンスthis.Usernameを返します。TextBox<asp:TextBox />

を使用AutoEventWireup="True"して、あなたが持っているように、クラスの一部としてのOnClickで指定されたメソッドを定義します。<asp:LinkButton />Page

protected void Login_Clicked(object sender, EventArgs e)
{
    var user = Username.Text;
    var pass = Password.Text;

    if (ValidateUser(user, pass))
    // etc.
}
于 2012-03-22T16:40:26.653 に答える