查一醒DataGrid的Column有没有<readonly=true>

解决方案 »

  1.   

    在DataGrid的属性对话框里的DataColumn的你不想改的列设为readonly=true
    是可视化的打个对构就OK
    绝对OK!
      

  2.   

    Imports System.Data
    Imports System.Data.SqlClient
    Public Class WebForm1
        Inherits System.Web.UI.Page
        Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
        Dim conn As SqlConnection
        Dim ds As DataSet
        Dim cmd As SqlDataAdapter
        Dim sqlselect As String = "select * from authors"
    #Region " Web Form 設計工具產生的程式碼 "    '此呼叫為 Web Form 設計工具的必要項。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法呼叫為 Web Form 設計工具的必要項
            '請勿使用程式碼編輯器來修改它。
            InitializeComponent()
        End Sub#End Region    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此加入要初始化頁面的使用者程式碼
            
            conn = New SqlConnection("server=localhost;uid=sa;pwd=sa;database=pubs;")
            cmd = New SqlDataAdapter(sqlselect, conn)
            ds = New DataSet()
            cmd.Fill(ds, "authors")
            DataGrid1.DataSource = ds.Tables("authors").DefaultView
            DataGrid1.DataBind()
        End Sub    Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
            DataGrid1.EditItemIndex = e.Item.ItemIndex
            DataGrid1.DataBind()    End Sub    Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
            DataGrid1.EditItemIndex = -1
            DataGrid1.DataBind()    End Sub    Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
            Dim cmdupdate As String = "update authors set au_address=@address "
            Dim mycmd As New SqlCommand(cmdupdate, conn)
            Dim I As Integer
            Dim CurrentTextBox As TextBox
            Dim Cols As String() = {"LName", "FName", "Phone", "Address", "City", "Zip"}        For I = 0 To 5
                CurrentTextBox = e.Item.FindControl("edit_" & Cols(I))
                Dim ColValue As String = CurrentTextBox.Text
                mycmd.Parameters("@" & Cols(I)).Value = ColValue
            Next
            mycmd.Parameters.Add(New SqlParameter(CurrentTextBox.Text, SqlDbType.VarChar, 11))    End Sub
    End Class看看