TextBox为密码时为何获取值为空

自在修行 2011-06-01 09:24:58
请教个问题:
我想做在一个页面进行数据库的安装,页面上是需要填写,各项点击按钮执行数据库的安装,但是遇到如下问题
:凡是TextMode="Password"的textbox的值均为“”,其他正常,麻烦指点一下
<tr>
<td width="6" class="style4"></td>
<td class="style4">数据库用户名</td>
<td class="style2">

<asp:TextBox ID="DBUserName" runat="server" CssClass="input_box" >root</asp:TextBox>
</td>
<td class="style4"></td>
</tr>
<tr>
<td width="6" height="22"> </td>
<td>数据库密码</td>
<td class="style2">
<asp:TextBox ID="DBPwd" runat="server" CssClass="input_box" TextMode="Password"></asp:TextBox>
</td>
<td> </td>
</tr>


Protected Sub Bt_db_Click(sender As Object, e As System.EventArgs) Handles Bt_db.Click
Bt_Next.Enabled = False

Dim db_server, db_user, db_name, db_port, db_pwd As String
Dim ad_username, ad_pwd As String
db_server = DBserver.Text
db_port = DBPort.Text
db_pwd = DBPwd.Text
db_user = DBUserName.Text
db_name = DBName.Text
ad_username = AdminUsername.Text
ad_pwd = AdminPWD.Text
Dim ConnStr As String
ConnStr = String.Format("server={0};user={1};database={2};port={3};password={4};charset=gb2312", db_server, db_user, db_name, db_port, db_pwd)
...全文
585 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
自在修行 2011-06-01
  • 打赏
  • 举报
回复
首先谢谢大家的帮助

找到原因了:
在分页面显示的时候,把密码输入框所在的Panel 的 Visible设置为false,密码的获取值就为“”了,之前看过关于把密码输入框隐藏不能获取值的问题,没想到这个也是同样的
老鼠找猫 2011-06-01
  • 打赏
  • 举报
回复
我也碰到这样的问题
自在修行 2011-06-01
  • 打赏
  • 举报
回复
好,我试一下
孟子E章 2011-06-01
  • 打赏
  • 举报
回复
上面都给你例子了,单独的页面textBox是没有问题的。
你只给vb代码并不能反映出你的操作流程
自在修行 2011-06-01
  • 打赏
  • 举报
回复
我的程序是分页面显示的
CheckBox_Accpet_CheckedChanged是在第一页面让用户接受协议,与第二页面无关
应该和加不加EnableViewState="true"没有关系吧
porschev 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 net_lover 的回复:]

CheckBox_Accpet_CheckedChanged
执行完毕后可能就没有了
[/Quote]

应该不是。。。不然他不是password的怎么能得了类
孟子E章 2011-06-01
  • 打赏
  • 举报
回复
CheckBox_Accpet_CheckedChanged
执行完毕后可能就没有了

加上
<%@ Page Language="VB" EnableViewState="true" %>
测试
大腹 2011-06-01
  • 打赏
  • 举报
回复
用排除法…
自在修行 2011-06-01
  • 打赏
  • 举报
回复
我把全部代码贴出来吧,真正相关的就是我之前贴的部分
Protected Sub CheckBox_Accpet_CheckedChanged(sender As Object, e As System.EventArgs) Handles CheckBox_Accpet.CheckedChanged
If Me.CheckBox_Accpet.Checked Then
Bt_Next.Enabled = True
Else
Bt_Next.Enabled = False
End If
End Sub

Protected Sub Bt_Next_Click(sender As Object, e As System.EventArgs) Handles Bt_Next.Click
Dim aa As Int16 = Val(Install_Step.Text)
If aa >= 1 And aa <= 3 Then

aa = aa + 1
Install_Step.Text = aa
End If
PageChange(aa)


End Sub

Protected Sub Bt_Pre_Click(sender As Object, e As System.EventArgs) Handles Bt_Pre.Click
Dim aa As Int16 = Val(Install_Step.Text)

If aa >= 2 And aa <= 4 Then
aa = aa - 1
Install_Step.Text = aa
End If
PageChange(aa)

End Sub

Sub PageChange(ByVal pageid As Int16)

Panel_readme.Visible = False
Panel_set.Visible = False
Panel_install.Visible = False
Panel_finish.Visible = False
Bt_Next.Text = "下一步"

Panel_finish.Visible = False
Select Case pageid
Case 1

Panel_readme.Visible = True

Bt_Pre.Enabled = False
Bt_Next.Enabled = True
Case 2


Panel_set.Visible = True


Bt_Pre.Enabled = True
Bt_Next.Enabled = True

Case 3

Panel_install.Visible = True

Bt_Pre.Enabled = True
Bt_Next.Enabled = True

Case 4

Panel_finish.Visible = True

Bt_Pre.Enabled = False
Bt_Next.Enabled = True
Bt_Next.Text = "完 成"
End Select
End Sub


Protected Sub Bt_db_Click(sender As Object, e As System.EventArgs) Handles Bt_db.Click
Dim db_server, db_user, db_name, db_port, db_pwd As String
Dim ad_username, ad_pwd As String
If Not IsPostBack Then
ad_pwd = AdminPWD.Text
End If

Bt_Next.Enabled = False


db_server = DBserver.Text
db_port = DBPort.Text
db_pwd = DBPwd.Text
db_user = DBUserName.Text
db_name = DBName.Text
ad_username = AdminUsername.Text
ad_pwd = AdminPWD.Text
Dim ConnStr As String
ConnStr = String.Format("server={0};user={1};database={2};port={3};password={4};charset=gb2312", db_server, db_user, db_name, db_port, db_pwd)

Dim Myconn As MySqlConnection = New MySqlConnection
Myconn.ConnectionString = ConnStr

'Try

Myconn.Open()

'读取sql文件

'打开sql文件
' Dim Sql As String = ""
Dim FileName As String = Server.MapPath("sql.sql")
Dim FileStream As StreamReader
FileStream = File.OpenText(FileName)
Dim OutsqlList As String = "" ' 输出到显示列表的字符串
Dim table, sql As String
While FileStream.Peek() <> -1
table = FileStream.ReadLine()
sql = FileStream.ReadLine()
OutsqlList += "创建表:" & table & " 完成" & Chr(13) & Chr(10)
SqlList.Text = OutsqlList
'表写入数据库
'db.ExecuteNonQuery("")
'更新管理员姓名,密码
MySqlHelper.ExecuteNonQuery(Myconn, "update b_member set username='" & ad_username & "',pwd='" & GetMd5(ad_pwd, 32) & "'")

End While
FileStream.Close()

Myconn.Close()
Myconn.Dispose()

Bt_db.Enabled = False
Bt_Next.Enabled = True
'写入configuration文件
'ConfigurationManager.ConnectionStrings("LocalMySqlServer").ConnectionString
'ConfigurationManager.ConnectionStrings.


'Catch ex As Exception
' SqlList.Text = "数据库配置信息错误,请重新配置"
' Bt_Pre.Enabled = True
'End Try
End Sub
自在修行 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 porschev 的回复:]
你的密码框是通过输入。。

再得到的值吗?
[/Quote]
porschev 2011-06-01
  • 打赏
  • 举报
回复

你的密码框是通过输入。。

再得到的值吗?
大腹 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 net_lover 的回复:]
采用下面的方法测试,去掉其他干扰因素

VB.NET code
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat……
[/Quote]
排除法
孟子E章 2011-06-01
  • 打赏
  • 举报
回复
处于安全性的考虑,TextMode="Password"的文本框是有很多需要注意的地方的,如不能通过TextBox1.Text = "xxxx"先赋值的

孟子E章 2011-06-01
  • 打赏
  • 举报
回复
采用下面的方法测试,去掉其他干扰因素。不要怀疑控件
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Protected Sub Button1_Click(sender As Object, e As System.EventArgs)
Response.Write("你输入的内容是:" + TextBox1.Text)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" TextMode="Password"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>
自在修行 2011-06-01
  • 打赏
  • 举报
回复
我试一下,没作用
把“TextMode="Password"” 去掉,就能获取值,
IT0329 2011-06-01
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kevin_520_kevin 的回复:]

if(!ispostback){}不然页面会把密码刷空的
[/Quote]

有可能。。
kevin_520_kevin 2011-06-01
  • 打赏
  • 举报
回复
if(!ispostback){}不然页面会把密码刷空的
自在修行 2011-06-01
  • 打赏
  • 举报
回复
没有重置,断点调试时也没有值
Lisliefor 2011-06-01
  • 打赏
  • 举报
回复
是不是在Page_Load中,文本框状态被重置了?
加载更多回复(3)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧