请大家参考一下:这是源代码部分被省略了,省得公司找我麻烦。谢谢大家。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中的事件,然后再绑定,但是前一部分代码不能做太大的改动,因为页面非常多。所以,有什么方法可以实现希望的功能 ,请大家给我点参考意见。谢谢大家,祝大家午餐丰盛!
I sorry , I'm a newer on asp.net .
真是不敢相信啊,每次自己发的贴子都要流产了。看来,同志们还要在CSDN上多努力啊。
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
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中的事件,然后再绑定,但是前一部分代码不能做太大的改动,因为页面非常多。所以,有什么方法可以实现希望的功能 ,请大家给我点参考意见。谢谢大家,祝大家午餐丰盛!
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