再问:DataGrid的OnUpate问题,我可以加入两个EditCommandColumn列吗。。 我觉得这个好像实现不好,因为好像DataGrid响应的EditCommandColumn事件仅有一个。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想可以实现吧?因为可以放2个 EditCommandColumn的呀。我发现那个什么 DataGrid_OnUpdate并不好用。麻烦,不如分成2个程序方便 完全没问题! 但是这样做效果不是太好!最好是专门做一个权限的DataGrid来修改权限! to:zhq2000(俗子)我可以通过数据库端来最后判断有没有权利修改用户的具体信息的。能告诉我怎么样才能知道点的是哪个 EditCommandColumn 吗?再:而且做到点了 更改密码的 EditCommandColumn 时,生成一个password框输入新密码。点更改权限的EditCommandColumn时生成一组checkboxlist来让他修改权限。能做到吗?哎。asp 1个小时搞定的,到现在24小时都搞不定了 在临时列中加入linkbutton试试<asp:LinkButton id="del" Text="删除" CommandName="delete" runat="server" /> <asp:LinkButton id="ftp" Text="挂出" CommandName="update" runat="server" /> 对应方法void DataList_deleteCommand(Object sender,DataGridCommandEventArgs e) {}void DataList_UpdateCommand(Object sender,DataGridCommandEventArgs e) {} 忘了一点在datagrid属性中加入OnupdateCommand="DataList_UpdateCommand"OnDeleteCommand="DataList_DeleteCommand" 使用TemplateColumn,在使用TemplateColumn时,在TemplateColumn中放置两个LinkButton.设置LinkButton的CommadName为两个你想设置的值,例如"ChangePWD","ChangeInfo".然后使用OnItemCommand事件,不要使用对应的什么OnUpdateCommand或者OnDeleteCommand等等其他相应Item事件的函数.然后用switch判断DataGridCommandEventArgs e的属性e.CommandName来决定采取何种动作. 老弟,思路可以放宽点:一、采用TemplateColumn代替EditCommandColumn , 在ItemCommand事件中处理相应的操作。二、加入两列EditCommandColumn ,在ItemDataBinding事件中分别为些两列的项通过.Attributes.Add方法增加一标识属性:WebControl w = (WebControl) e.Item.Cells[n].Controls[m];w.Attributes.Add("cmdtag" , "口令");w = (WebControl) e.Item.Cells[x].Controls[y];w.Attributes.Add("cmdtag" , "权限");// n , x 是列序号 ; m , y 是控制序号 , 如果 y 不好确定,可以通过下需方式得到//// foreach(WebControl wc in e.Item.Cells[n].Controls)//// {//// w.Attributes.Add("cmdtag" , "口令");//// }在EditCommand事件中,取出 e.CommandSource 中的标识属性,可以判断是那一个Edit操作:WebControl wc = (WebControl) e.CommandSource;if( wc["cmdtag"] == "口令" ){ .....}else( wc["cmdtag"] == "权限"){ .....}这两个方法都能达到你的目的,如果你想用而还不理解的话,说明你对DataGrid的了解太少,就不要再想了,乖乖用两页方式完成交差吧!千万别再说不行,要说不会,比这复杂的DataGrid我都做了 .祝工作顺利!:) TO zhq2000(俗子)谢谢你,我有时间去试试除了sdk ,我在哪里能对 DataGrid 了解更多呢?有好范例吗? DotNet Framework SDK 有中文版的,你到microsoft上找找,里面的文档是中文的。http://msdn.microsoft.com/msdnmag/default.asp 上有几篇关于 DataGrid的文章!其实关键是了解ItemDataBinding , ItemCreated , ItemCommand , 及利用Web控件的CommandName 及 CommandArgument属性! C#绝对路径与相对路径 ThreadPool 与 treeView 递归 在线等sql语句,只求速度..... c# 编译错误 。。。google搜了没啥结果 radiobutton单项选择 有没有人用过Navbarcontrol 这个控件?? 我拖到表单上控件显示不出来?? 怎样把XML数据存入SQL2000中 form 之间如何通讯 老问题有关web打印! 回归散分 + 提问:Unity的语法错误 c#的dll什么时候才能有保密性呀 那里可以下载C#?
因为可以放2个 EditCommandColumn的呀。
我发现那个什么 DataGrid_OnUpdate并不好用。
麻烦,不如分成2个程序方便
最好是专门做一个权限的DataGrid来修改权限!
能告诉我怎么样才能知道点的是哪个 EditCommandColumn 吗?再:
而且做到点了 更改密码的 EditCommandColumn 时,生成一个password框输入新密码。点更改权限的EditCommandColumn时生成一组checkboxlist来让他修改权限。能做到吗?
哎。asp 1个小时搞定的,到现在24小时都搞不定了
<asp:LinkButton id="del" Text="删除" CommandName="delete" runat="server" />
<asp:LinkButton id="ftp" Text="挂出" CommandName="update" runat="server" />
对应方法
void DataList_deleteCommand(Object sender,DataGridCommandEventArgs e) {}
void DataList_UpdateCommand(Object sender,DataGridCommandEventArgs e) {}
在datagrid属性中加入
OnupdateCommand="DataList_UpdateCommand"
OnDeleteCommand="DataList_DeleteCommand"
设置LinkButton的CommadName为两个你想设置的值,例如"ChangePWD","ChangeInfo".然后使用OnItemCommand事件,不要使用对应的什么OnUpdateCommand或者OnDeleteCommand等等其他相应Item事件的函数.然后用switch判断DataGridCommandEventArgs e的属性e.CommandName来决定采取何种动作.
二、加入两列EditCommandColumn ,在ItemDataBinding事件中分别为些两列的项通过.Attributes.Add方法增加一标识属性:
WebControl w = (WebControl) e.Item.Cells[n].Controls[m];
w.Attributes.Add("cmdtag" , "口令");
w = (WebControl) e.Item.Cells[x].Controls[y];
w.Attributes.Add("cmdtag" , "权限");
// n , x 是列序号 ; m , y 是控制序号 , 如果 y 不好确定,可以通过下需方式得到
//// foreach(WebControl wc in e.Item.Cells[n].Controls)
//// {
//// w.Attributes.Add("cmdtag" , "口令");
//// }
在EditCommand事件中,取出 e.CommandSource 中的标识属性,可以判断是那一个Edit操作:
WebControl wc = (WebControl) e.CommandSource;
if( wc["cmdtag"] == "口令" )
{
.....
}
else( wc["cmdtag"] == "权限")
{
.....
}
这两个方法都能达到你的目的,如果你想用而还不理解的话,说明你对DataGrid的了解太少,就不要再想了,乖乖用两页方式完成交差吧!
千万别再说不行,要说不会,比这复杂的DataGrid我都做了 .祝工作顺利!:)
有好范例吗?