类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
dataSet中有两个表A、B,表A是表B的父表,并建立了DataRelation---z。在dataGrid中显示A,并通过z连接访问子表。
要求A和B中都可以修改数据,但都不可以添加或删除行。
我在程序中添加以下代码用来禁止用户在表A中添加或删除行的操作,测试通过:
CurrencyManager cm = (CurrencyManager)this.BindingContext[dataSet,"A"];
((DataView)cm.List).AllowNew = false;
((DataView)cm.List).AllowDelete = false;
但是当通过z访问到子表的时候,就又可以添加或删除行了。
CurrencyManager cmm = (CurrencyManager)this.BindingContext[dataSet,"B"];
((DataView)cmm.List).AllowNew = false;
((DataView)cmm.List).AllowDelete = false;
CurrencyManager cn = (CurrencyManager)this.BindingContext[dataSet,"A.Z"];
((DataView)cn.List).AllowNew = false;
((DataView)cn.List).AllowDelete = false;
无论单独添加或同时添加以上两段代码,都可以在表B中添加或删除行,请问应该怎么写才能禁止在表B中添加或删除行?
用ReadOnly是不行的,因为要允许用户修改数据。
谢谢各位!
网友回答:
不大理解你的“禁止”是何含义。
你不提供添加删除行的功能给用户,用户怎么能添加删除行呢?
up
关注
up
办法:
1、做两个模块给不同人用
2、在同一个界面上控制按钮
不明白,你没有特别设置的情况下,grid是完全开放的可以自由删除和添加嘛?
我觉得你可以在DataGrid上做文章
你可以通过限制数据权限的方法来解决。
╭═══╮ ╭═══╮ ╭══════╮
╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮
║ ║ ║ ║ ║ ║ ╰╮╰╮
║ ║ ║ ║ ║ ║ ║ ║
║ ║ ║ ║ ║ ║ ╭╯╭╯
║ ║ ║ ║ ║ ╰══╯╭╯
║ ║ ║ ║ ║ ╭═══╯
║ ║ ║ ║ ║ ║
╰╮╰╮ ╭╯╭╯ ║ ║
╰╮╰═╯╭╯ ╭╯ ╰╮
╰═══╯ ╰═══╯
up
up
MM是我话我就自己写组件,继承改了它的属性。
但是当Delete的时候,就没有Row_progeditcenter_Changing事件,怎么办?
自己写一个。
帮你顶顶!!
up
up
学习
不太明白,帮up
up
this.dS_goods.Tables[0].DefaultView.AllowNew = false;
this.dS_goods.Tables[0].DefaultView.AllowEdit= false;
this.dataGrid1.DataSource = this.dS_goods.Tables[0].DefaultView;
up
up
DataGrid.ReadOnly 属性 [C#]请参见
DataGrid 类 | DataGrid 成员 | System.Windows.Forms 命名空间 | DataColumn.ReadOnly | DataGrid 成员 | C++ 托管扩展编程
要求
平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列
语言
C#
C++
JScript
Visual Basic
全部显示
获取或设置一个指示网格是否处于只读模式的值。
[Visual Basic]
Public Property ReadOnly As Boolean
[C#]
public bool ReadOnly {get; set;}
[C++]
public: __property bool get_ReadOnly();
public: __property void set_ReadOnly(bool);
[JScript]
public function get ReadOnly() : Boolean;
public function set ReadOnly(Boolean);
属性值
如果网格处于只读模式,则为 true;否则为 false。默认为 false。
备注
在只读模式下,可以滚动网格、展开或折叠节点以及进行其他操作。但是,不能进行添加、编辑或删除操作。
DataGridColumnStyle 还有 ReadOnly 属性,可以针对每一列将该属性设置为真以防止编辑数据。
如果要禁止用户直接在 System.Windows.Forms.DataGrid 中编辑数据,可将 ReadOnly 设置为真。例如,您可能希望允许用户查看表中的所有列,但只允许他们通过另一个窗体上的 TextBox 控件来编辑特定字段。
控制权限,只许可更新特定行,不允许做删除行,和增加行操作!
up
up
不要用表格控件!!!!!!!!
帮美女 UUUUUUUUP
使用授权
获得授权的允许添加删除
否则不可
private void Position_Changed(object sender, EventArgs e)
{
// Print the Position property value when it changes.
((DataView)cm1.List).AllowNew=false;
}
每次父表Position_Changed,重新设置子表((DataView)cm1.List).AllowNew=false;
up
up
使用 DataGrid 控件的 TableStyles 属性就可以完成此功能。
具体怎么做看一下帮助就会了。