ASPxGridView的資料繫結顯示
dt中是從資料庫中查詢到的資料例如select A,B,C from tablename
ASPxGridView1.DataSource = dt;
ASPxGridView1.DataBind();
ASPxGridView1.KeyFieldName = "keyfield";//設定KeyFieldName之後才能對其做相關的操作。
這樣查詢到的dt和ASPxGridView1中的Columns中的列是對應的,直接繫結就行,SQL語句中的列名要和新增Columns時候設定的FieldName相同才能繫結的上去。
但是有時候直接獲取符合ASPxGridView中的列的SQL語句較有難度就推薦下方的方法2。
2.這樣的適合比較複雜的GridView
建立兩個DataTable dt1=new DataTable(); DataTable dt2=new DataTable();
ASPxGridView1 中的列來自不同的表 例如其中有5列 A,B,C,D,E,A,B,C列來自表table1,列D,E來自表table2
(table1 中列為ABC table2中表為ADE,其中table1.A與table2.A相關)
dt1中存從資料庫table1中查詢到的資訊。得到dt1中包含(ABC)
dt2建立為和ASPxGridView所要求的列一樣的DataTable,即列為A,B,C,D,E的DataTable
建立方法如下
typeof(型別)可以選擇為需要的型別
dt2.Columns.Add("A", typeof(String));
dt2.Columns.Add("B", typeof(String));
dt2.Columns.Add("C", typeof(String));
dt2.Columns.Add("D", typeof(String));
dt2.Columns.Add("E", typeof(String));
然後迴圈dt1將dt1中的資料新增到dt2中
for (int I=0;i<dt1.Rows.Count;i++)
{
DataRow dr = dt2.NewRow();
dr["A"] = dt1.Rows[i]["A"];
dr["B"]=dt1.Rows[i]["B"];
dr["C"]=dt1.Rows[i]["C"];
dt2.Rows.Add(dr);
}
然後執行SQL語句將dt1中存入從資料庫table2中的資料得到dt中包含(ADE),迴圈dt1將其新資訊新增到dt2中
for (int I=0;i<dt1.Rows.Count;i++)
{
for (int j=0;j<dt2.Rows.Count;j++)
{
if (dt2.Rows[j]["A"]==dt1.Rows[i][A])
{
dt2.Rows[j]["D"]=dt1.Rows[i]["D"];
dt2.Rows[j]["E"]=dt1.Rows[i]["E"];
break;
}
}
}
利用如此方法得到處理後的dt2,將dt2繫結到ASPxGridView上面。除此之外,如果要對ASPxGridView做一些特殊處理,比如資料庫中儲存的是某些編碼,在ASPxGridView中想要顯示這些編碼對應的文字也可以用該方法。
例如:
table1 欄位 name type sex 張三 1 1
其中type=1想要顯示為“學生”sex=1想要顯示為“男”
用select * from table1得到的dt中資料是這樣的
dt.Rows[0]["name"]="張三";
dt.Rows[0]["type"]="1";
dt.Rows[0]["sex"]="1";
直接繫結到ASPxGridView上的話顯示的是 張三 1 1,但是想顯示為 張三 學生 男 的話就可以對dt做些處理。
處理如下
for (int i=0;i<dt.Rows.Count;i++)
{
if (dt.Rows[i]["type"]=="1")
{dt.Rows[i]["type"]="學生")
}
if (dt.Rows[i]["sex"]=="1")
{dt.Rows[i]["sex"]="男")
}
}
這樣處理過後的dt再繫結到ASPxGridView上就行了。總之是查詢到資料之後可以對資料進行一些操作,如果一個DataTable不夠用的話,可以申請多個進行處理,將DataTable處理為自己想要的樣式再繫結。
除此之外還可以在繫結之後進行顯示的時候進行更改,在ASPxGridView的操作中有個HtmlRowCreted,在這個事件中新增
protected void ASPxGridView1_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
{
// int i = e.VisibleIndex;
String type;
LiteralControl a_cell = new LiteralControl();
a_cell=(LiteralControl)e.Row.Cells[2].Controls[0];
type = a_cell.Text.ToString();
switch (type)
{
case "1":
a_cell.Text = "型別1";
break;
case "2":
a_cell.Text = "型別2";
break;
case "3":
a_cell.Text = "型別3";
break;
case "4":
a_cell.Text = "型別4";
break;
case "5":
a_cell.Text = "型別5";
break;
case "6":
a_cell.Text = "型別6";
break;
}
}
這樣本來繫結的資料來源中type這一項儲存為1,2,3,4,5,6在這裡進行了處理就會變成型別1,型別2,型別3,型別4,型別5,型別6
相關文章
- 微信小程式資料資料繫結顯示NaN微信小程式NaN
- vue select 繫結複雜資料和預設顯示Vue
- 資料繫結
- SpringMVC【引數繫結、資料回顯、檔案上傳】SpringMVC
- vue中select繫結多個值及資料回顯Vue
- 第二講、Vue3.x繫結資料、繫結html、繫結屬性、迴圈資料VueHTML
- element table不顯示任何資料,無資料倒是顯示出無資料的了
- Angular | 理解資料繫結Angular
- Binding(一):資料繫結
- SpringMVC資料繫結demoSpringMVC
- 如何分頁顯示資料庫查詢結果?資料庫
- Vue資料繫結簡析Vue
- JS雙向資料繫結JS
- vue資料繫結原始碼Vue原始碼
- vue中的雙向資料繫結原理Vue
- 淺析vue的雙向資料繫結Vue
- 測試開發【提測平臺】分享4-實現資料庫繫結和產品線顯示功能資料庫
- Winform控制元件繫結資料ORM控制元件
- Study Blazor .NET(四)資料繫結Blazor
- Vue資料雙向繫結原理Vue
- angular1資料繫結例子Angular
- vue雙向資料繫結原理Vue
- DataBinding資料繫結基本講解
- 初見SpringMVC之資料繫結SpringMVC
- 原生js雙向資料繫結JS
- 資料顯示設定攻略
- 模板語法之--強制資料繫結和繫結事件監聽事件
- WPF ComboBox資料繫結:初始化動態載入ItemsSource後首次賦值Text不顯示問題解決賦值
- 【翻譯】WPF中的資料繫結表示式
- 淺談 Checkbox Group 的雙向資料繫結
- Vue原始碼探究-資料繫結的實現Vue原始碼
- js 實現vue的雙向資料繫結JSVue
- iview中下拉框的資料繫結使用View
- 如何實現VM框架中的資料繫結框架
- vue資料雙向繫結的實現原理Vue
- 前端三大框架:資料繫結與資料流前端框架
- win10 如何顯示隱藏資料夾_win10 如何顯示隱藏的資料夾Win10
- WPF/C#:資料繫結到方法C#
- 雙向資料繫結是什麼