datagrid的 itemcommand事件 事件怎么触发不了

datagrid的 itemcommand 事件怎么触发不了啊??????
[问题点数:20分,结帖人ylh1223]
datagrid的 itemcommand 事件怎么触发不了啊??????
[问题点数:20分,结帖人ylh1223]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。C#实现给DataGrid单元行添加双击事件的方法
作者:华宰
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了C#实现给DataGrid单元行添加双击事件的方法,较为详细的分析了C#给DataGrid单元添加双击事件的步骤及相关实现代码,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C#实现给DataGrid单元行添加双击事件的方法。分享给大家供大家参考。具体如下:
现在我需要做到的功能是当我单击DataGrid某行时显示相对应选中的数据信息,在双击此相同行时弹出删除对话框,应该怎么做呢。由于单击问题很简单就不再阐述了,下面我说一下双击事件是怎么实现的。
这里用到了DataGrid的ItemDataBound事件,我们可以把下面的代码加入到所需的程序中就可实现双击的功能。
private void DataGrid1_ItemDataBound(
object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e
if ((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem) ||
(e.Item.ItemType == ListItemType.SelectedItem) )
e.Item.Attributes.Add ("ondblclick",
"javascript:return confirm('确定删除" + e.Item.Cells[1].Text + "?');");
希望本文所述对大家的C#程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具flex(78)
var data:Object = datagrid控件的id.selectedI
这个data就是你要的那一行的值,你需要某个具体的值,只要data。属性名就可以获取了
=======================================
1.介绍一下DataGrid中数据的增加/删除/获取。
由于DataGrid的数据都绑定于Array或XML,所以我们需要增加记当或删除记录的时候..只需要对所绑定的数据进行相应的操作即可。这里就不多说了..一会直接看代码。
要提示一下的是..虽然数据与DataGrid进行的绑定.不过好像修改了数据源不会立刻更新..需要DataGrid对数据源进行一次反向操作(就在是 DataGrid下进行编辑,下一节会介绍),才会进行更新,所以如果希望立刻更新的话..我们可以再指行一次数据指定..
DataGrid.dataProvider = 数据源
这里所说的获取..是当我们对DataGrid进行的操作(点击项目)的时候..进行所点击的位置索引与数据的获取.
(如果要获取指定第几行,每几列的数据,这样对数据源进行操作即可)
当我们侦听itemClick事件的时候..将会接收到一个ListEvent事件对象..对象里分别有所点击单元格的列索引与列索引,我们就从这两个数据进行其它数据的获取..
(ps:下边提到的e为ListEvent事件对象..)
1.所点击的列的表头
(e.target as DataGrid).columns[e.columnIndex].headerText
2.点击的列索引
e.columnIndex
3.点击的行索引
e.rowIndex
4.点击的整行的数据(选中的数据)
(e.target as DataGrid).selectedItem
5.选中的单元格的数据
(e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]
&?xml version=&1.0&?&
&mx:Application xmlns:mx=&& layout=&absolute& width=&450& fontFamily=&宋体& fontSize=&12& height=&400&&
&mx:Script&
import mx.controls.*;
import mx.events.ListE
import mx.controls.dataGridClasses.*;
private var DataGrid1:DataG
[Bindable]//原始数据
public var dataArr:Array = [{id:1,name:&苹果&,count:100},
{id:2,name:&西瓜&,count:200},
{id:3,name:&水蜜桃&,count:50}]
private function addItem():void{
&&&&&&& dataArr.push({id:uiId.value,name:uiName.text,count:uiCount.value})
&&&&&&& DataGrid2.dataProvider = dataArr
private function delItem():void{
&&&&&&& dataArr.pop();
&&&&&&& DataGrid2.dataProvider = dataArr
private function itemClick(e:ListEvent):void {
Alert.show(DataGrid2.columns[0].headerText);
&& var txt:String = &表头为: &+(e.target as DataGrid).columns[e.columnIndex].headerText+&\n&
&& txt+=&选中第 &+e.columnIndex+& 列\n&
&& txt+=&选中第 &+e.rowIndex+& 行\n&
&& txt+=&选中的行的数据为:\n&
&& var dat:Object = (e.target as DataGrid).selectedItem
&& for(var i:* in dat){
&&&& txt+=& &+i+&:&+dat[i]+&\n&
&& txt+=&选中的单元可格的数据为 &+(e.target as DataGrid).selectedItem[(e.target as DataGrid).columns[e.columnIndex].dataField]+& \n&
&& Alert.show(txt)
&/mx:Script&
&mx:DataGrid id=&DataGrid2& itemClick=&itemClick(event)& dataProvider=&{dataArr}& width=&430& y=&10& x=&10& height=&208&&
&mx:columns&
&mx:DataGridColumn headerText=&序号& dataField=&id&/&
&mx:DataGridColumn headerText=&名称& dataField=&name&/&
&mx:DataGridColumn headerText=&数量& dataField=&count& editorDataField=&value&/&
&/mx:columns&
&/mx:DataGrid&
&mx:NumericStepper id=&uiId& x=&10& y=&241& width=&150&/&
&mx:TextInput id=&uiName& x=&10& y=&288& width=&150&/&
&mx:NumericStepper id=&uiCount& x=&10& y=&335& width=&150&/&
&mx:Label x=&10& y=&224& text=&序号:&/&
&mx:Label x=&10& y=&271& text=&名称:&/&
&mx:Label x=&10& y=&318& text=&数量:&/&
&mx:Button click=&addItem()& x=&10& y=&368& label=&添加& width=&150&/&
&mx:Button click=&delItem()& x=&290& y=&368& label=&删除最后一个& width=&150&/&
&/mx:Application&
2.Datagrid数据的移动moveData.mxml
&?xml version=&1.0& encoding=&utf-8&?&&&&
&mx:Application xmlns:mx=&& layout=&absolute& xmlns:window=&com.diaztorres.window.*& xmlns:log=&com.log.*&&&&&
&mx:Script&&&&
&&& &![CDATA[&&&
&&&&&& import mx.collections.IL&&&&&
&&&&&& import mx.collections.ArrayCollection&&&
&&&&&& import mx.controls.A&&&&&&&&&
&&&&&& public function moveUp(event : MouseEvent) : void&&
&&&&&&& {&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&& var i : int = peopleList.selectedI
&&&&&&&&&&&&
&&&&&&&&& if (i &= 1&&peopleList.selectedItem)&&&
&&&&&&&&&& {&&&&&&&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&&
IList(peopleList.dataProvider).addItemAt(peopleList.selectedItem,i-1);
&&&&&&&&&&&& &//Alert.show(peopleList.selectedIndex.toString());&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&& IList(peopleList.dataProvider).removeItemAt(i+1);&&&
&&&&&&&&&&&& peopleList.selectedIndex =&&&
&&&&&&&&&&&&&&&&&&&&&&&& //Alert.show(i.toString());
&&&&&&&&&&& }&&&
&&&&&&& }&&&
&&&&&&&&&&&
&&&&&& public function moveDown(event : MouseEvent) : void&&
&&&&&&& {&&&
&&&&&&& var i : int = peopleList.selectedI&&&&&&&&&
&&&&&& if (i & (ArrayCollection(peopleList.dataProvider).length - 1) && peopleList.selectedItem)&&&
&&&&&&& {&&&&&&&&&&&&&&&&
&&&&&&&&&& IList(peopleList.dataProvider).addItemAt(peopleList.selectedItem,i + 2);&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& IList(peopleList.dataProvider).removeItemAt(i);&&&&&&
&&&&&&&&&&&&&&& peopleList.selectedIndex =&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&
&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& ]]&&&&
&&&& &/mx:Script&&
&&&&& &mx:Array id=&arrDP&&
&&&&&&& &mx:Object c=&1& c1=&One& /&
&&&&&&& &mx:Object c=&2& c1=&One& /&
&&&&&&& &mx:Object c=&3& c1=&One& /&
&/mx:Array&&&
&&&& &mx:VBox horizontalAlign=&center& x=&618& y=&176& height=&264&&&&&&&&
&&&& &mx:DataGrid id=&peopleList&& dataProvider=&{arrDP}&& x=&198& y=&66& width=&302&&&&&
&&&&&&&&&&
&&&& &/mx:DataGrid&&&&
&&&& &mx:ControlBar width=&298& horizontalAlign=&right& height=&26&&&&&
&&&&&&&& &mx:Button label=&上移& click=&moveUp(event)&/&&&&
&&&&&&&& &mx:Button label=&下移& click=&moveDown(event)&/&&&&
&&&& &/mx:ControlBar&&&&&&&&
&/mx:VBox&&&&
&/mx:Application&
3.DataGrid的数据更换感应
&?xml version=&1.0& encoding=&utf-8&?&
&mx:Application name=&DataGrid_maxVerticalScrollPosition_text&
&&&&&&& xmlns:mx=&&
&&&&&&& layout=&vertical&
&&&&&&& verticalAlign=&middle&
&&&&&&& backgroundColor=&white&
&&&&&&& creationComplete=&init();&&
&&& &mx:Script&
&&&&&&& &![CDATA[
&&&&&&&&&&& import mx.events.CollectionE
&&&&&&&&&&& private var timer:T
&&&&&&&&&&& private function init():void {
&&&&&&&&&&&&&&& timer = new Timer(500);
&&&&&&&&&&&&&&& timer.addEventListener(TimerEvent.TIMER, onTimer);
&&&&&&&&&&&&&&& timer.start();
&&&&&&&&&&& }
&&&&&&&&&&& private function onTimer(evt:TimerEvent):void {
&&&&&&&&&&&&&&& var now:String = new Date().toTimeString();
&&&&&&&&&&&&&&& arrColl.addItem({id:timer.currentCount, time:now});
&&&&&&&&&&& }
&&&&&&&&&&& private function arrColl_collectionChange(evt:CollectionEvent):void {
&&&&&&&&&&&&&&&
callLater(autoScrollDataGrid);
&&&&&&&&&&& }
&&&&&&&&&&& private function autoScrollDataGrid():void {
&&&&&&&&&&&&&&& if (dataGrid) {
&&&&&&&&&&&&&&&&&&&
dataGrid.validateNow();
//validateNow () 方法&&
&&&&&&&&&&&&&&&&&&& //验证并更新此对象的属性和布局,
&&&&&&&&&&&&&&&&&&& //如果需要的话重绘对象。
&&&&&&&&&&&&&&&&&&& //通常只有当脚本执行完毕后,
&&&&&&&&&&&&&&&&&&& //才会处理要求进行大量计算的处理属性。
&&&&&&&&&&&&&&&&&&& //例如,对 width 属性的设置可能会延迟,
&&&&&&&&&&&&&&&&&&& //因为此设置需要重新计算这些对象的子项或父项的宽度。
&&&&&&&&&&&&&&&&&&& //如果脚本多次设置了 width 属性,则延迟处理可防止进行多次处理。此方法允许您手动覆盖此行为。
&&&&&&&&&&&&&&&&&&&
dataGrid.verticalScrollPosition=dataGrid.maxVerticalScrollPosition;//滚动条
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&& ]]&
&&& &/mx:Script&&&&
&&& &mx:ArrayCollection id=&arrColl&
&&&&&&&&&&& collectionChange=&arrColl_collectionChange(event);& /&&&&
&&& &mx:DataGrid id=&dataGrid&
&&&&&&&&&&& dataProvider=&{arrColl}&
&&&&&&&&&&& verticalScrollPolicy=&on&
&&&&&&&&&&& width=&200&
&&&&&&&&&&& rowCount=&8&&
&&&&&&& &mx:columns&
&&&&&&&&&&& &mx:DataGridColumn dataField=&id& width=&50& /&
&&&&&&&&&&& &mx:DataGridColumn dataField=&time& /&
&&&&&&& &/mx:columns&
&&& &/mx:DataGrid&&
&/mx:Application&
================================
http://xiweicheng./756
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46860次
积分:1390
积分:1390
排名:千里之外
原创:87篇
转载:21篇
(1)(1)(1)(1)(1)(4)(1)(3)(8)(7)(14)(1)(3)(46)(22)&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&& 毕业后忽然觉得什么地方都要用钱, 这半年除了工作,几乎没有什么时间静下心来分享一些东西了,生活压力山大啊.
&&&&&&& 这篇文章分享MVVM中常见的一个问题,相信在实际运用MVVM的朋友一定会遇到这种问题.&
&sdk:DataGridTemplateColumn Header="功能"
Width="Auto"&
&sdk:DataGridTemplateColumn.CellTemplate&
&DataTemplate &
&StackPanel Orientation="Horizontal"&
&Button Content="删除" Margin="10,0" Command="{Binding ShowCommand}"
Height="24"
HorizontalAlignment="Left" VerticalAlignment="Center" &
&/StackPanel&
&/DataTemplate&
&/sdk:DataGridTemplateColumn.CellTemplate&& &/sdk:DataGridTemplateColumn&
&&&&&& 在CellTemplate中的Button与ViewModel中的Command属性绑定时.你会发现Button无法触发这个事件&&&&&&
&&&&& 如何处理这种情况呢,我的做法是这样的:
public class DataContextProxy:TriggerAction&DependencyObject&
protected override void Invoke(object parameter)
var parent = this.AssociatedObject as DependencyO
var fe = this.AssociatedObject as FrameworkE
while (parent != null)
if (parent.GetType() == typeof(DataGrid))
var context = parent as DataG
fe.DataContext = context.DataC
parent = VisualTreeHelper.GetParent(parent) as DependencyO
&&&&&& 继承一个TriggerAction,具体的原理就不叙述了,Button引用这个TriggerAction ,不要忘了System.Windows.Interactivity这个dll噢^^
&Button Content="删除" Margin="10,0" Command="{Binding ShowCommand}"
Height="24"
HorizontalAlignment="Left" VerticalAlignment="Center" &
&i:Interaction.Triggers&
&i:EventTrigger&
&local:DataContextProxy/&
&/i:EventTrigger&
&/i:Interaction.Triggers&
&&&&&&& 这样就可以了.另外一种方式可以参考:.如何取舍就由各位自己分析比较吧.
&&&&&& 示例下载:
阅读(...) 评论()温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
现实象石头,精神象个蛋,石头虽然坚硬,蛋才是生命!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
有很多网友遇到这样的问题:在DataGrid模板列中的按钮可以触发ItemCommand事件但是怎么触发其他事件?(比如放置DropDownList怎么触发SelectedIndexChange事件?)按照
在模板列中增加一个DropDownList
&asp:TemplateColumn HeaderText="学院"&&&&&&&&ItemTemplate&&&&&&&&&asp:DropDownList ID="dep2" Runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged"&&/asp:DropDownList&&&&&&&&/ItemTemplate&&&&&&&&EditItemTemplate&&&&&&&&&asp:DropDownList ID="dep" Runat="server"&&/asp:DropDownList&&&&&&&&/EditItemTemplate&&/asp:TemplateColumn&在前台直接加上事件DropDownList2_SelectedIndexChanged然后在后台添加事件就可以了protected void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)&&{&&&Response.Write(((DropDownList)sender).SelectedItem);&&}
注意,事件不能是private的,这里的sender就是这个下拉框,类型转换一下就能使用了
PS :补充一下 DropDownList ddl = (DropDownList) TableCell cell = (TableCell)ddl.P DataGridItem item = (DataGridItem)cell.P Response.Write(item.Cells[0].Text); PS:补充一下
中说了怎么在触发DataGrid模板列中控件自己的事件,网友问怎么知道点击的是哪一行?要通过这个来获取中的信息。
那一行DataGridItem是
((DataGridItem)((DropDownList)sender).Parent)
吗?不是,因为((DataGridItem)((CheckBox)sender).Parent)是TableCell
其实应该是
((DataGridItem)((DropDownList)sender).Parent.Parent)
接下来你想怎么就怎么了。
输出行号:
Response.Write(((DataGridItem)((DropDownList)sender).Parent.Parent).ItemIndex);
Response.Write(((DataGridItem)((DropDownList)sender).Parent.Parent).Cells[0].Text);
PS:补充一下
2.0之后有个DateKeyNames的属性,实际上这个就是个主键,可以通过e的索引来获取这个主键的键值。不考虑性能的话,可以通过DataRowView或者直接通过TABLE.SELECT这个来获取那一行的数据。
PS:补充一下更加简单的就是: DataRowView drv=e.Row.DataItem as DataRowView 直接就能用drv[“字段名”]来获取数据。
Powered by: 博客园 Copyright & lovecherry 引文来源&&
阅读(890)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_082',
blogTitle:'怎么触发DataGrid模板列中控件的事件? ',
blogAbstract:'怎么触发DataGrid模板列中控件的事件?
有很多网友遇到这样的问题:在DataGrid模板列中的按钮可以触发ItemCommand事件但是怎么触发其他事件?(比如放置DropDownList怎么触发SelectedIndexChange事件?)按照
在模板列中增加一个DropDownList
&asp:TemplateColumn HeaderText=\"学院\"&&&&&&&&ItemTemplate&&&&&&&&&asp:DropDownList ID=\"dep2\" Runat=\"server\" AutoPostBack=\"True\" OnSelectedIndexChanged=\"DropDownList2_SelectedIndexChanged\"&&/asp:DropDownList&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:4,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'现实象石头,精神象个蛋,石头虽然坚硬,蛋才是生命!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 datagriditem 的文章

 

随机推荐