不好意思,估计是我没把问题描述清楚
1.textbox的runat="server" TextMode="Password"属性我知道,谢谢各位提醒。
2.我想问的是,我做了一个演示版软件,进入网站后,直接给出演示用户的名称和密码,用户不用输入任何数据,直接点击登录即可进入,但网页上的Password控件的默认值mypass现为无内容状态,在c_UserEnter_Click(object sender, System.EventArgs e)中,if (c_UserPass.Text.Trim() == "")判断语句为真,
<asp:textbox id="c_UserPass" runat="server" Width="100px" ToolTip="请输入mypass" MaxLength="20" TextMode="Password">mypass</asp:textbox>请问如何解决。
Password控件中,用户重新输入口令mypass时是正确的。3.我在列语句中加入的mypass也不起作用
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack) 
{
    c_UserPass.Text = "mypass";
}
}

解决方案 »

  1.   

    tavor(龙双公子),谢谢你多次答复。我在下句中加入myPassTxt时,情况与上述相同,仍然为必须重新输入口令。
    <asp:textbox id="PassTxt" runat="server" Width="152px" TextMode="Password">myPassTxt</asp:textbox>
      

  2.   

    首先我用服务控件的textbox,把它设成passmode,可是你在客户端看到的确实是空,而且无论是看源代码还是页面,估计是微软对passmode的textbox作了处理后才发到客户端了。无奈!只得用普通的passwordfield,可是虽然微软说兼容asp,可是我用
    string pass=Request.Form.Get("mypass");//mypass为passwordfield控件。得到的确实为空,这让我也很郁闷,不得再用以下方法测试。我在用户点提交按纽的处理事件中用以下代码来查看所有提交的数据,如下: int loop1, loop2;
    System.Collections.Specialized.NameValueCollection coll;
     
    // Load Header collection into NameValueCollection object.
    coll=Request.Params;
    // Put the names of all keys into a string array.
    String[] arr1 = coll.AllKeys; 
    for (loop1 = 0; loop1<arr1.Length; loop1++) 
    {
    Response.Write("Key: " + arr1[loop1] + "<br>");
    // Get all values under this key.
    String[] arr2=coll.GetValues(arr1[loop1]);
    for (loop2 = 0; loop2<arr2.Length; loop2++) 
    {
    Response.Write("Value " + loop2 + ": " + arr2[loop2] + "<br>");
    }
    }
    里面确实没有mypass这个控件的值,可见微软对server控件和client控件作了严格的区分,不让client控件来进行数据提交。
    没办法,再试一下把这个password field控件转化为server控件,然后在客户端浏览,查看源文件代码,发现又为空,哭,我也没想到什么好办法了。只得用下面的方法来模拟了,(汗,没办法啊,)
    1.这里用password field控件,不转化为服务器端控件。设置其初值为58801353.
    2.然后提交的时候不用获取密码值在,服务端用默认密码直接查询。缺点:不能用其它密码提交。换一个方法:
    呵呵,在旁边设置一个链接,就是测试用户直接登陆的链接。其它的地方还用从前的服务端控件。再有好的方法没,就只能敬听高手高论了。
      

  3.   

    呵呵,最终还是又想出来一种方法,
    在html代码文件的head标记中添加一段javascript,如下:
    <script language="javascript">
    function setPass()
    {
    document.getElementById("passTextBox").innerText="mypass";
    }</script>
    上面中的passTextBox为一个asp:textbox且为passmode的textbox的ID,mypass是要设的密码然后在body中添加onload="setPass()",如下:
    <body MS_POSITIONING="GridLayout" onload="setPass()">这样就万事大吉了!555....7点半了,不能再耽误了,我要去自习,我的包还在自习室呢。如果还有疑问,请发信到我的信箱。[email protected]
      

  4.   

    to tavor(龙双公子),再次感谢。