前台放一个隐藏的控件,给每个按钮设置onclick事件改变那个控件的值。page load的时候可以判断那个控件的值。

解决方案 »

  1.   

    请大家参考一下:这是源代码部分被省略了,省得公司找我麻烦。谢谢大家。Namespace MTRC.ETMS.Web
        Public Class etmAmendmentReasonCode
            Inherits ETMPage
            Protected WithEvents dsCodeMT_etmAmendmentReasonCode As MTRC.ETMS.Web.Data.dsCodeMT_etmAmendmentReasonCode
            Protected WithEvents btnPrint As System.Web.UI.HtmlControls.HtmlInputButton
            Protected WithEvents hidConditioin As System.Web.UI.HtmlControls.HtmlInputHidden
            Protected WithEvents btnFillter As System.Web.UI.HtmlControls.HtmlInputButton
            Protected WithEvents btnShowAll As System.Web.UI.WebControls.Button
            Protected WithEvents grdJobType As System.Web.UI.WebControls.DataGrid#Region " Web 窗体设计器生成的代码 "        '该调用是 Web 窗体设计器所必需的。
            <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
                Me.dsCodeMT_etmAmendmentReasonCode = New MTRC.ETMS.Web.Data.dsCodeMT_etmAmendmentReasonCode()
                CType(Me.dsCodeMT_etmAmendmentReasonCode, System.ComponentModel.ISupportInitialize).BeginInit()
                '
                'dsCodeMT_etmAmendmentReasonCode
                '
                Me.dsCodeMT_etmAmendmentReasonCode.DataSetName = "dsCodeMT_etmAmendmentReasonCode"
                Me.dsCodeMT_etmAmendmentReasonCode.Locale = New System.Globalization.CultureInfo("en-US")
                Me.dsCodeMT_etmAmendmentReasonCode.Namespace = "http://tempuri.org/dsCodeMT_etmAmendmentReasonCode.xsd"
                CType(Me.dsCodeMT_etmAmendmentReasonCode, System.ComponentModel.ISupportInitialize).EndInit()        End Sub        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 Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                '在此处放置初始化页的用户代码
                '这是设置CodeMaintenance只读的部分
                grdStatus(50204, Me.grdJobType)            Dim sql As String
                If Not Me.IsPostBack Then
                    Bind()
                Else
                    If Me.hidConditioin.Value.Trim <> "" Then
                        .
                        .
                        .
                        
                        Me.grd.DataBind()                    Me.hidConditioin.Value = ""
                    End If
                End If
            End Sub
            Private Sub Bind()                .
                       .
                       .
                Me.grd.DataBind()
            End Sub        Private Sub grd_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles grdJobType.ItemCommand            Dim CodeCdTable As Cls.CdTable
                Dim r As DataRow '修改之后的行
                Dim rKey As DataRow '修改之前的行,主健的值是visiable=false的textbox
                Dim i As Integer, CmdName As String
                Dim EffectFrom As String, EffectTo As String, AmendmentReasonCode As String, Description As String
                CmdName = e.CommandName            Select Case CmdName
                    Case "AddNew"
                       .
                       .
                       .
                       bind()
                    Case "Delete"
                       .
                       .
                       .
                       bind()                Case "Save"
                       .
                       .
                       .
                       bind()
                End Select        End Sub        Private Sub grdJobType_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles grdJobType.PageIndexChanged
                Me.grdJobType.CurrentPageIndex = e.NewPageIndex
                Bind()
            End Sub        Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click
                Me.hidConditioin.Value = ""
                Bind()
            End Sub
        End Class
    End Namespace我希望实现的是先执行grd_ItemCommand中的事件,然后再绑定,但是前一部分代码不能做太大的改动,因为页面非常多。所以,有什么方法可以实现希望的功能 ,请大家给我点参考意见。谢谢大家,祝大家午餐丰盛!
      

  2.   

    I sorry , I'm a  newer on asp.net .
      

  3.   

    真是不敢相信啊,每次自己发的贴子都要流产了。看来,同志们还要在CSDN上多努力啊。
      

  4.   

    try Coding as ...Sub Page_Load()
    if not me.ispostback()
        Bind()
    else
    if me.hidcondition.value<>""
       Bind(me.hidcondition.value)
       'Save condition to view state
       me.ViewState("Condition")=me.hidcondition.value
       'Clear hidCondition.value
       me.hidcondition.value=""
    end if
    end if
    End Sub
    private Sub Bind(optional Sql as  string = "")
     dim obj as codemaintenanceobject,dt as datatable
      'dt = code maintenance table
     if Sql ="" then
        dt=obj.getdata()
      else
        dt=obj.getdatabycondition(sql)
      end if
      me.grd.databind()
    end sub
    private sub grd_ItemCommand(source as object,e as evenagrs)
      select case e.Commandname
        case "Add"
         'do add
         me.Bind(me.viewstate("Condition"))
        case "Delete" 
         'do delete...
         me.Bind(me.viewstate("Condition"))
       case "Update"
          'do update...
          'don't bind datagrid 
      end case
    end sub