linxihuanghuang

导航

制作一个登录页面时碰到的种种问题

      因为一直处于一边维护系统一边学习.net的状态,并没有真正动手自己写过一个页面。到了真的轮到自己时,发现碰到的问题还真多,不过这样学的东西也多了很多,将碰到的一些小问题记录下来,留着给自己提个醒,希望也能帮到在看这篇文章的你,当然仅限于初学者,哈哈~~

      我要做的这个登录界面很简单。

界面是美工做好了,发给我,然后我在后台填代码。

先是登录和重置两个按钮,美工刚开始给的格式是:

1 <input id="btnLogin" name="btnLogin" type="button" value="登  录" class="btn" />
2 <input id="btnReset" name="btnReset" type="reset"  value="重  置" class="btn" />

因为要加上onclick事件,我先是直接在按钮上双击后,以上的两行代码就变成了:

1 <input id="btnLogin" name="btnLogin" type="button" value="登  录" class="btn" onclick="return btnLogin_onclick()"  />
2 <input id="btnReset" name="btnReset" type="reset"  value="重  置" class="btn" onclick="return btnReset_onclick()"  />

同时.aspx页面的JS代码中多了两个函数function btnLogin_onclick() {}和function btnReset_onclick() {},这样肯定是不行的,这两个按钮的单击事件应该是在后台较为合理。目前找到两种解决的方案。

(1)在上两行的input的属性里面都加上runat="server",这样双击按钮添加代码时,会发现,每行的属性里面多了onclick属性,变成:

1 <input id="btnLogin" name="btnLogin" type="button" value="登  录" class="btn" onserverclick="btnLogin_ServerClick" />
2 <input id="btnReset" name="btnReset" type="reset"  value="重  置" class="btn" onserverclick="btnReset_ServerClick" />

在后台代码中叶自动新增了这两个函数,直接编辑里面的内容即可。

(2)可以将这两个按钮的类型都做一下改变,分别变成:

1 <asp:Button ID="btnLogin" Text="登  录" runat="server" CssClass="btn" OnClick="btnLogin_Click"  /> 
2 <asp:Button ID="btnReset" Text="重  置" runat="server" CssClass="btn" OnClick="btnReset_Click" />

这个方法也是可行的。从中你还可以看到<input type="button">和<asp:Button>这两者是有区别的。

      关于登录和重置按钮,还碰到了一个问题,就是程序提醒:类型"Button"的控件"btnLogin"必须放在具有runat=server的窗体标记内。这个时候你就需要看看你的前端代码里面是否在合适的位置添加了:<form id="Form1" method="post" runat="server"></form>。

      我还碰到了一个很白痴的问题,就是在后台页面里面获取不到前端的<input>类型控件的id,后来才发现,因为<input>是属性HTML类型的控件,要与后台发生联系,必须添加runat=server属性,这与前面的onclick事件写不到后台的问题不谋而合。总而言之,runat=server代表的意思是这块代码是由asp.net执行的。

      接下来是验证码的问题,因为单击换一张时希望能重新获得验证码,关于重新获得验证码的问题,最简单的一个方法便是:

      <a href="Login.aspx" title="换一张" style="text-decoration:underline;"  >换一张</a>

即直接在href属性中加上本页面的连接地址。当然这有一个弊病,即整个页面重新刷新,用户原来填的信息全部重新置空。由于本页面用户信息不多,所以直接采用了这一方法。

      在网上找了一些不用整个页面刷新的办法,即把生成验证码的函数单独放在一个页面里即可。

      还有一些很杂碎的小问题:例如null和""的区别,null是未定义,""代表空字符串,也算是一个值。一个比较好的比方是,""代表有座位但是座位上没人;null代表连座位都没有。

     好了,以上便是我碰到的问题了。很多小事,不做是平时根本不会意识到的。

    

 

posted on 2013-04-19 15:27  linxihuanghuang  阅读(333)  评论(0编辑  收藏  举报