ASP.NET(C#) 开发WebForm现在想在DataGrid中动态控制某些列的只读属性。如:DataGrid中有“学号”“姓名”“科目”“成绩”“爱好”五个列。
    对于学生用户,那么前四列是在只读的;对于老师,那么“爱好”是只读的。请问各位大侠有没有办法实现该功能?请指点……学习,关注!

解决方案 »

  1.   

    <asp:BoundColumn  DataField="爱好" ReadOnly="True" HeaderText="爱好">
    </asp:BoundColumn>
      

  2.   

    在DataGrid的ItemDataBound事件里面做文章
      

  3.   

    to:quzw(quzw) 能不能给一个简单的例子啊!to: czsxj(好好学习天天向上) 
    你说的我也知道啊,我现在需要动态的控制只读属性请帮忙,谢谢!学习,关注……
      

  4.   

    自己写个方法,根据用户登录的类别返回 true或false
    用 TemplateColumn 调用这个方法就可以了
      

  5.   

    <asp:BoundColumn  DataField="爱好" ReadOnly="True" HeaderText="爱好">
    </asp:BoundColumn>
    在datagrid中进行列的绑定,在BoundColumn中把属性 ReadOnly设为True,就是上面的意思。
      

  6.   

    OnItemCreated = "dGrid1_ItemCreated"  綁定dGrid1的OnItemCreated 事件Public Sub dGrid1_ItemCreated(ByVal sender As Object, ByVal e As                          System.Web.UI.WebControls.DataGridItemEventArgs)
            '判斷是否是資料列
            If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =  ListItemType.AlternatingItem Then
                If flag_Confrim.Text.Trim <> "2" Then   寫你自己的判斷條件
                    e.Item.Cells(0).Enabled = False
                    e.Item.Cells(1).Enabled = False
                Else
                    e.Item.Cells(0).Enabled = True
                    e.Item.Cells(1).Enabled = True
                End If
    End If
    End Sub