虽然只是做非常小的一个图书管理系统,但由于使用了Devexpress的这个控件还是增加了不少难度的。虽然控件是用来简化开发的,但是使用规则如果不清楚的话,要研究怎么使用,有点费时,当然这仅仅指第一次使用。所以把我的经验记录一下,分享一下,算是自我总结吧。
1、 首先是ASPxGridView的编辑和删除。 Aspx:
添加显示编辑删除按钮。 Cs:
protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) //更新 {
string S_TSMC, S_TSFL, S_TSZZ, S_CFWZ, D_CBRQ, S_CBS, C_SL, C_JCSL; try {
string S_ISBN = Convert.ToString(e.Keys[0]); if (e.NewValues[\] == null) {
S_TSMC = \; } else {
S_TSMC = e.NewValues[\].ToString();//得到该字段的值,但需要必须判断是否是null。 }
string TxtSql = \ + S_TSMC + \ + S_ISBN + \;
Books.K_OraHelper.ExecuteSql(TxtSql); }
catch (Exception err) {
throw err; }
grid.CancelEdit();//结束编辑状态 e.Cancel = true;
Bind_AspXGrid();//重新绑定 }
protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) //删除
{ try {
string S_ISBN = Convert.ToString(e.Keys[0]);
string TxtSql = \ + S_ISBN + \; if (Books.K_OraHelper.ExecuteSql(TxtSql) == 1) {
ScriptManager.RegisterClientScriptBlock(this.ASPxButton2, GetType(), \, \ + \已成功删除\+Books.K_OraHelper.ExecuteSql(TxtSql)+\条记录\\\ + \, true); } }
catch (Exception err) {
throw err; }
e.Cancel = true; Bind_AspXGrid(); }
2、 列中把默认的AspxTextBox变成AspxComboBox,重要的是怎么给这个combobox添加备选项。 Aspx:
protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) {
if (!grid.IsEditing || e.Column.FieldName != \) return; if (e.KeyValue == DBNull.Value || e.KeyValue == null) return; object val = grid.GetRowValuesByKeyValue(e.KeyValue, \); if (val == DBNull.Value) return; string S_Isbn = (string)val;
ASPxComboBox combo = e.Editor as ASPxComboBox; FillCbsCombo(combo, S_Isbn); }
protected void FillCbsCombo(ASPxComboBox cmb, string S_Isbn) {
if (string.IsNullOrEmpty(S_Isbn)) return; List
foreach (string s_cbs in cbss) cmb.Items.Add(s_cbs); }
List
{
List
string TxtSql = \; DataSet Ds = Books.K_OraHelper.Query(TxtSql); DataView Dv = Ds.Tables[0].DefaultView; for (int i = 0; i < Dv.Count; i++) {
list.Add((string)Dv[i][0]); }
return list; }
这样就可以显示这种效果:
别人的:
新增和编辑的列不同的设置:
在ASPxGridView中,新增和编辑数据调用的都是同一个EditForm,但实际使用中经常遇到新增数据的列与可编辑的列不同。解决方案如下。
View Code C
protected void ASPxGridView1_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e) {
//贷款类型
GridViewDataComboBoxColumn gdc_DKLX = ASPxGridView1.Columns[\as GridViewDataComboBoxColumn;
//录入人
GridViewDataTextColumn gdc_LRR = ASPxGridView1.Columns[\\as GridViewDataTextColumn;
//录入时间
GridViewDataTextColumn gdc_LRSJ = ASPxGridView1.Columns[\SJ\as GridViewDataTextColumn;
if (ASPxGridView1.IsNewRowEditing) {
//贷款类型
gdc_DKLX.EditFormSettings.Visible =DevExpress.Web.ASPxClasses.DefaultBoolean.True;
//录入人
gdc_LRR.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean. True;
//录入时间
gdc_LRSJ.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean. True; }

