DevExpress: ASPxGridView 中绑定下拉框(不用该死的ASPxDropDownEdit,而用简单的GridViewDataComboBoxColumn)
2011-11-01 17:51
519 查看
这该死的ASPxDropDownEdit,老是不能很好的解决问题,花了一天都没有解决。刚才重游了一次 devExpree的官网,找到了传说中的解决方案:原来官方不提创使用ASPxDropDownEdit,而是极力推荐 ComboBox。
解决方案如下:
1,html前台代码
注意:关键在于 sqlDataSource,FieldName,TextField,ValueField,KeyFieldName
2,后台主要代码(1)
3,后台主要代码(2)
4,grvUserGroup_RowInserting,grvUserGroup_RowUpdating,grvUserGroup_RowDeleting 自行实现
解决方案如下:
1,html前台代码
注意:关键在于 sqlDataSource,FieldName,TextField,ValueField,KeyFieldName
<asp:SqlDataSource ID="sqlDataSrcApp" runat="server"></asp:SqlDataSource> <asp:SqlDataSource ID="sqlDataSrcGroup" runat="server"></asp:SqlDataSource> <dx:ASPxGridView ID="grvUserGroup" runat="server" AutoGenerateColumns="False" ClientIDMode="AutoID" CssFilePath="~/App_Themes/Office2003Blue/{0}/styles.css" CssPostfix="Office2003Blue" Width="100%" KeyFieldName="AppID" onrowinserting="grvUserGroup_RowInserting" onrowupdating="grvUserGroup_RowUpdating" onrowdeleting="grvUserGroup_RowDeleting" oncelleditorinitialize="grvUserGroup_CellEditorInitialize" > <ClientSideEvents RowDblClick="function(s, e) { s.StartEditRow(e.visibleIndex); }" /> <Columns> <dx:GridViewDataComboBoxColumn Caption="系统名称" FieldName="AppID" VisibleIndex="0" > <PropertiesComboBox ValueType="System.String" TextField="AppName" ValueField="AppID" EnableSynchronization="False" IncrementalFilteringMode="StartsWith" DataSourceID="sqlDataSrcApp" Width="100%"> </PropertiesComboBox> <EditCellStyle HorizontalAlign="Left"> </EditCellStyle> </dx:GridViewDataComboBoxColumn> <dx:GridViewDataComboBoxColumn Caption="用户组" FieldName="GroupID" VisibleIndex="1"> <PropertiesComboBox ValueType="System.String" TextField="GroupName" ValueField="GroupID" EnableSynchronization="False" IncrementalFilteringMode="StartsWith" DataSourceID="sqlDataSrcGroup" Width="100%"> </PropertiesComboBox> <EditCellStyle HorizontalAlign="Left"> </EditCellStyle> </dx:GridViewDataComboBoxColumn> </Columns> <SettingsBehavior AllowFocusedRow="True" /> <SettingsEditing Mode="PopupEditForm" PopupEditFormHeight="80px" PopupEditFormHorizontalAlign="WindowCenter" PopupEditFormModal="True" PopupEditFormVerticalAlign="WindowCenter" PopupEditFormWidth="450px" EditFormColumnCount="4" /> <SettingsText CommandCancel="取消" CommandDelete="删除" CommandEdit="修改" CommandNew="新建" CommandUpdate="确定" ConfirmDelete="你确定要删除吗" Title="修改用户组信息" PopupEditFormCaption="修改用户组信息" /> <Styles CssFilePath="~/App_Themes/Office2003Blue/{0}/styles.css" CssPostfix="Office2003Blue"> <Header HorizontalAlign="Center"> </Header> </Styles> </dx:ASPxGridView>
2,后台主要代码(1)
// form_load中的 if(!this.IsPostBack){----} // 省略号的部分包括以下内容 sSQL = "select [AppID],[AppName] from [sysApp]"; sqlDataSrcApp.SelectCommand = sSQL; sqlDataSrcApp.ConnectionString = Common.ConfigHelper.GetConfigString("ConnectionString"); //= Common.Tool.GetDataTable(out sError, sSQL); if (!string.IsNullOrEmpty(sError)) { Common.MessageBox.Show(this, sError); return; } sSQL = "select [GroupID],[GroupName] from [sysGroup]"; sqlDataSrcGroup.SelectCommand = sSQL; sqlDataSrcGroup.ConnectionString = Common.ConfigHelper.GetConfigString("ConnectionString"); if (!string.IsNullOrEmpty(sError)) { Common.MessageBox.Show(this, sError); return; }
3,后台主要代码(2)
protected void grvUserGroup_CellEditorInitialize(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewEditorEventArgs e) { string sSQL = string.Empty; if (grvUserGroup.IsNewRowEditing && e.Column.FieldName == "AppID") { sSQL = "select [AppID],[AppName] from [sysApp]"; sqlDataSrcApp.SelectCommand = sSQL; sqlDataSrcApp.ConnectionString = Common.ConfigHelper.GetConfigString("ConnectionString"); //= Common.Tool.GetDataTable(out sError, sSQL); if (!string.IsNullOrEmpty(sError)) { Common.MessageBox.Show(this, sError); return; } } else if (grvUserGroup.IsNewRowEditing && e.Column.FieldName == "GroupID") { sSQL = "select [GroupID],[GroupName] from [sysGroup]"; sqlDataSrcGroup.SelectCommand = sSQL; sqlDataSrcGroup.ConnectionString = Common.ConfigHelper.GetConfigString("ConnectionString"); if (!string.IsNullOrEmpty(sError)) { Common.MessageBox.Show(this, sError); return; } } }
4,grvUserGroup_RowInserting,grvUserGroup_RowUpdating,grvUserGroup_RowDeleting 自行实现
相关文章推荐
- DevExpress AspxGridView数据绑定
- [网络收集]ASP.NET两种办法给DropDownList绑定SqlDataReader 及在gridview等控件中绑定dropdownlist的简单方法
- Devexpress ASPxGridView 绑定模板列
- DevExpress2011控件教程)ASPxGridView 范例2 :ASPxGridView 增、删、改及内嵌comboBox
- (DevExpress2011控件教程)ASPxGridView 范例1 :如何绑定数据到ASPxGridView
- (DevExpress2011控件教程)ASPxGridView 范例2 :ASPxGridView 增、删、改及内嵌comboBox
- DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)
- DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit)
- DevExpress中的ASPxGridView添加、编辑时的ComboBox联动研究
- devExpress:gridview 中绑定下拉框
- ASPXGridView footer 中显示汇总信息【Devexpress】
- ComboBox简单的下拉框
- 一个AspxGridView包含另一个AspxGridView实现主从数据绑定
- DataGridView 绑定 DataGridViewComboBoxColumn 空白问题
- DataGridView绑定数据,同时绑定DataGridViewComboBoxColumn列的值
- Devexpress 12.2.8.0 部分学习笔记1 【ASPxGridview】
- 我的ASPxGridView控件的数据是在后台绑定的,但是实现不了筛选和分页的功能,只能显示一页的数据?
- DevExpress学习之ASPxGridView后台增加列
- 用devexpress把gridview的一列设置成combobox属性后,如何把其中一行改成dateedit属性