ASP.NET的IsPostBack问题

zengfanying 2009-03-02 01:27:43
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
AB1 = Date.Parse(Now.Date).ToString("yyyyMMdd") + "001"
end if
end sub
如果我把If Not IsPostBack Then和end if去掉,AB1结果是对的
如果不去掉,AB1是空值,是怎么回事
...全文
222 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
CutBug 2009-03-02
  • 打赏
  • 举报
回复
晕,AB1 是变量啊
刘津宇教编程 2009-03-02
  • 打赏
  • 举报
回复
把Then去掉试试
zengfanying 2009-03-02
  • 打赏
  • 举报
回复
已搞掂,O(∩_∩)O谢谢各位
springbell 2009-03-02
  • 打赏
  • 举报
回复
瞄一个
qq4004229 2009-03-02
  • 打赏
  • 举报
回复
Not isPostBack 是第一次打开页面符合条件。如果刷新肯定不会运行里面的代码
zengfanying 2009-03-02
  • 打赏
  • 举报
回复
ding
ZKM_ZHANG 2009-03-02
  • 打赏
  • 举报
回复
Not isPostBack 是第一次打开页面符合条件。如果刷新肯定不会运行里面的代码
ZKM_ZHANG 2009-03-02
  • 打赏
  • 举报
回复
isPostBack是第一次打开页面符合条件。如果刷新肯定不会运行里面的代码
lsgy2008 2009-03-02
  • 打赏
  • 举报
回复
up
iuhxq 2009-03-02
  • 打赏
  • 举报
回复
AB1是你定义的变量,不是ASP.NET服务器端控件。

没有ViewState保持功能。

所以你点击按钮提交时没有执行计算,自然没有结果。

去掉if是正确的。
wsj1983920 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 che2piaopiao 的回复:]
引用 1 楼 CutBug 的回复:
你触发事件里肯定有清空AB1的动作吧
up
[/Quote]up
hhxxcj 2009-03-02
  • 打赏
  • 举报
回复
要不就是你有清空的,要不就是页面第二次没走赋值代码,所以没有值,你可以打上断点走一下看看
che2piaopiao 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 CutBug 的回复:]
你触发事件里肯定有清空AB1的动作吧
[/Quote] up
  • 打赏
  • 举报
回复
肯定有清空AB1的代码
zengfanying 2009-03-02
  • 打赏
  • 举报
回复
我把源代码贴上:
Dim INT1 As Integer
Dim STR1 As String
Dim AB1 As String
Dim DS As New DataSet
Dim CONN As New SqlConnection(ConfigurationManager.ConnectionStrings("SHOUHOUConn").ToString)
Dim strS = Date.Parse(Now.Date).ToString("yyyyMMdd") + "000"

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim STR As String

If TextBox1.Text = "" And DropDownList1.Text = "" Then
Label6.Text = "物料代码于机器类别不能同时为空!"
Exit Sub
End If
If DropDownList1.Text <> "" And TextBox3.Text = "" Then
Label6.Text = "机器型号不能为空!"
Exit Sub
End If
If TextBox3.Text <> "" And TextBox4.Text = "" Then
Label6.Text = "位号不能为空!"
Exit Sub
End If
' Dim CONN As New SqlConnection(ConfigurationManager.ConnectionStrings("SHOUHOUConn").ToString)
Str = "INSERT INTO [申请表]([票号],[网点编号],ID,[物料编码],[机器类型],[机器型号],[位号],[数量])"
STR = STR + "values('" & AB1 & "','" & Session("WDBH") & "','" & ViewState("INT1") & "' ,'" & TextBox1.Text & "','" & DropDownList1.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox2.Text & "')"
'STR = "SELECT [票号] from [申请表] order by [票号] asc"
'Dim OBJCMD = New SqlDataAdapter()
Dim OBJCMD As SqlCommand = New SqlCommand(Str, CONN)
OBJCMD.Connection.Open()
OBJCMD.ExecuteNonQuery()
OBJCMD.Connection.Close()
CLS()
Label6.Text = strS
ViewState("INT1") = CInt(ViewState("INT1")) + 1

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ViewState("INT1") = 1

STR1 = "SELECT [票号] from [申请表] WHERE [票号] > '" & strS & "' order by [票号] asc"
Dim CONN As New SqlConnection(ConfigurationManager.ConnectionStrings("SHOUHOUConn").ToString)
Dim OBJDAR As New SqlDataAdapter(STR1, CONN)
CONN.Open()
OBJDAR.Fill(DS, "申请表")
Dim DT As DataTable
DT = DS.Tables("申请表")
If DT.Rows.Count = "0" Then
AB1 = Date.Parse(Now.Date).ToString("yyyyMMdd") + "001"
Else
AB1 = Val(DT.Rows(DT.Rows.Count - 1)("票号")) + "1"
End If
CONN.Close()
DS.Clear()
DS.Reset()
End If
End Sub

帮忙改下
mingch516548094 2009-03-02
  • 打赏
  • 举报
回复
看不懂是撒也。还是顶下。
zengfanying 2009-03-02
  • 打赏
  • 举报
回复
INT1我用了VIEWSTATE
但是AB1用了不行
zengfanying 2009-03-02
  • 打赏
  • 举报
回复
我用了viewstate,报错,说是空值
把if去掉就好了
我不再PAGE_LOAD里面定义的AB1
在所有代码之上定义的AB1
跟这有关吗?
但是我定义一个INT1 as integer
在PAGE_LOAD里面INT1=1
在按钮控件里面用INT1=INT1+1
结果是正确的,他们有什么不一样吗?
我满意做清空的动作
Terran5 2009-03-02
  • 打赏
  • 举报
回复
IsPostBack 是指是否回传服务器了。如果楼主你点的按钮没有回传服务器那么IsPostBack==true的代码是不会被执行的。反之则被执行
rockey116 2009-03-02
  • 打赏
  • 举报
回复
汗~~~
AB1是变量当然会被清掉,除非static,要么就用viewstate
加载更多回复(1)

62,268

社区成员

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

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

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

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