在page_load中加入IsPostback判断后,导致无法触发页面控件事件,谁能告诉我是何原因!在线求教!

解决方案 »

  1.   

    IsPostback判斷不會影響控件事件的觸發,建議你檢查下控件的autoPostback屬性是否為true
      

  2.   

    现在没办法判断是否是加IsPostback的问题,看看InitializeComponent()中的代码,事件初始化是否还存在,我也经常遇到,事件丢失的问题。
      

  3.   

    单加IsPostback是不会影响的
    这只不过是标识判断真正影响的,事件委托与控件的AutoPostBack属性设置是否为True
      

  4.   

    ispostback是判断是否为第一次加载页面,和你的用户控件是没有关系的
    看你的InitializeComponent()中的代码
      

  5.   

    问题是我用的是VB.net写的,没有委托!
      

  6.   

    Imports OdcLib.Web
    Imports OdcLib.TSMP
    Public Class start
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents lbCCTitle As System.Web.UI.WebControls.Label
        Protected WithEvents ddlRso As System.Web.UI.WebControls.DropDownList
        Protected WithEvents ddlDso As System.Web.UI.WebControls.DropDownList
        Protected WithEvents ddlOutlet As System.Web.UI.WebControls.DropDownList
        Protected WithEvents ddlcity As System.Web.UI.WebControls.DropDownList
        Protected WithEvents txtBeginDate As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtEndDate As System.Web.UI.WebControls.TextBox
        Protected WithEvents lbErrorInfo As System.Web.UI.WebControls.Label
        Protected WithEvents lbTitle As System.Web.UI.WebControls.Label
        Protected WithEvents btnQuery As System.Web.UI.WebControls.Button
        Protected WithEvents btnSubmit As System.Web.UI.WebControls.Button
        Protected WithEvents dtgOrder As System.Web.UI.WebControls.DataGrid
        Protected WithEvents lbBg As System.Web.UI.WebControls.Label    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        Private Bg As String
        Private ccDataOp As New CallCardDataOp    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If IsPostBack Then
                Return
            End If
            Bg = Request("Bg")
            
            Bind(ddlRso)
            Me.lbBg.Text = Bg
        End Sub    Private Sub Bind(ByVal ddl As DropDownList)
            Select Case ddl.ID
                Case "ddlRso"
                    Dim dtRso As New DataTable
                    ccDataOp.GetRso(dtRso, Bg)
                    ddl.DataSource = dtRso
                    ddl.DataTextField = "vr_rso_name"
                    ddl.DataValueField = "vr_rso_code"
                    ddl.DataBind()
                    ddl.Items.Insert(0, "请选择大区")
                Case "ddlDso"
                    Dim dtdso As New DataTable
                    ccDataOp.GetDso(dtdso, Me.ddlRso.SelectedValue.Trim())
                    ddl.DataSource = dtdso
                    ddl.DataTextField = "vr_dso_name"
                    ddl.DataValueField = "vr_dso_code"
                    ddl.DataBind()
                Case "ddlCity"
                    Dim dtcity As New DataTable
                    ccDataOp.GetDso(dtcity, Me.ddlDso.SelectedValue.Trim())
                    ddl.DataSource = dtcity
                    ddl.DataTextField = "vr_city_name"
                    ddl.DataValueField = "vr_city_code"
                    ddl.DataBind()
                Case "ddlOutlet"
                    Dim dtOutlet As New DataTable
                    ccDataOp.GetDso(dtOutlet, Me.ddlCity.SelectedValue.Trim())
                    ddl.DataSource = dtOutlet
                    ddl.DataTextField = "outletname"
                    ddl.DataValueField = "outletid"
                    ddl.DataBind()
            End Select    End Sub    Private Sub ddlRso_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlRso.SelectedIndexChanged
            If ddlRso.SelectedIndex = 0 Then
                Return
            End If
            Bind(ddlDso)
        End Sub    Private Sub ddlDso_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlDso.SelectedIndexChanged
            Bind(ddlcity)
        End Sub    Private Sub ddlcity_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlcity.SelectedIndexChanged
            Bind(ddlOutlet)
        End Sub    Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
            Response.Redirect("Frame.aspx?outlet=" + Me.ddlOutlet.SelectedValue + "&date=" + Me.txtBeginDate.Text + "~" + Me.txtEndDate.Text + "&bg=" + Me.lbBg.Text)
        End Sub
    End Class
    这是代码,一下午了,不知道错在什么地方
      

  7.   

    InitializeComponent()
    你这个方法的具体实现你找找看,看有没有!
      

  8.   

    If IsPostBack Then
                Return
            End If
            Bg = Request("Bg")
            
            Bind(ddlRso)
            Me.lbBg.Text = Bg
    你这段代码肯定有问题
    要么你得改成这样
    if Not IsPostBack then
     Bg = Request("Bg")
            
     Bind(ddlRso)
     Me.lbBg.Text = Bg
    end if
      

  9.   

    否则你每次都是得到都是 Bind(ddlRso)这个datagrid显示的
      

  10.   

    if( IsPostBack  )
    这个改为
    if( !IsPostBack )
    第一次运行的话IsPostBack为false
      

  11.   

    if isPostback then
    return
    end if
    ....
    这样写在当ispostback为true时就返回了,不会执行下面的语句,应该和
    if not isPostback then....
    应该是没区别的另外,想问下,是否有环境变量会改变程序运行结果!
      

  12.   

    触发页面控件事件后 isPostback = true,