DataGrid 中的特殊应用
生活随笔
收集整理的這篇文章主要介紹了
DataGrid 中的特殊应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.//生成鼠標前后著色的變化
只用增加ItemDataBound事件就可以. private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//生成鼠標前后著色的變化
????????????if(e.Item.ItemType!=ListItemType.Header)
????????????{
????????????????if(e.Item.ItemIndex%2==0)
????????????????{
????????????????????e.Item.Attributes.Add(?"onmouseout","this.style.backgroundColor='PaleGoldenrod'");
????????????????}
????????????????else
????????????????{
????????????????????e.Item.Attributes.Add(?"onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
????????????????}
????????????e.Item.Attributes.Add(?"onmouseover","this.style.backgroundColor='#C1D2EE'");
????????????}
????????}
2.//調整列寬
只用增加ItemDataBound事件就可以
private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//調整列寬
????????????switch?(e.Item.ItemType)
????????????{
????????????????case?ListItemType.Item:
????????????????case?ListItemType.AlternatingItem:
????????????????????e.Item.Attributes.Add("ondblclick","alert('"+e.Item.ItemIndex+"');");????????????????????
????????????????????break;
????????????????case?ListItemType.Header:
????????????????????e.Item.Cells[0].ColumnSpan=2;//合并單元格
????????????????????e.Item.Cells[1].Visible=false;
????????????????????break;
????????????????case?ListItemType.EditItem:
????????????????????for?(int?i=4;?i?<?DataGrid1.Columns.Count-2;?i++)//只調整被編輯的列
????????????????????{
????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????{
????????????????????????e.Item.Cells[i].Attributes.Add("Width",?"70px");
????????????????????}
????????????????????}
????????????????????????
????????}
3.如果編輯中省,市,區這樣的DropDownList,最好的方法就是做在三連動文件
只用增加ItemDataBound事件就可以
private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//?在此生成三級連動
????????????????????string?sqlprovince="select?*?from?province";
????????????????????DataSet?dsprovince=GetDataSet(sqlprovince);
????????????????????//一級
????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????{
????????????????????????DropDownList?ddlprovince=(DropDownList)e.Item.FindControl("province");
????????????????????????ddlprovince.DataSource=dsprovince;
????????????????????????ddlprovince.DataTextField="province";
????????????????????????ddlprovince.DataValueField="provinceID";
????????????????????????ddlprovince.DataBind();
????????????????????????ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"provinceID"))).Selected=true;
????????????????????????//二級
????????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????????{
????????????????????????????if(ddlprovince.SelectedIndex!=-1)
????????????????????????????{
????????????????????????????????string?sqlcity="select?*?from?city?where?father='"+ddlprovince.SelectedValue+"'";
????????????????????????????????DropDownList?ddlcity=(DropDownList)e.Item.FindControl("city");
????????????????????????????????DataSet?dscity=GetDataSet(sqlcity);????????????????
????????????????????????????????ddlcity.DataSource=dscity;
????????????????????????????????ddlcity.DataTextField="city";
????????????????????????????????ddlcity.DataValueField="cityID";
????????????????????????????????ddlcity.DataBind();
????????????????????????????????ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
????????????????????????????????//三級
????????????????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????????????????{
????????????????????????????????????if(ddlcity.SelectedIndex!=-1)
????????????????????????????????????{
????????????????????????????????????????string?sqlarea="select?*?from?area?where?father='"+ddlcity.SelectedValue+"'";
????????????????????????????????????????DropDownList?ddlarea=(DropDownList)e.Item.FindControl("area");
????????????????????????????????????????DataSet?dsarea=GetDataSet(sqlarea);????????????????
????????????????????????????????????????ddlarea.DataSource=dsarea;
????????????????????????????????????????ddlarea.DataTextField="area";
????????????????????????????????????????ddlarea.DataValueField="areaID";
????????????????????????????????????????ddlarea.DataBind();
????????????????????????????????????????ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
????????????????????????????????????}
????????????????????????????????}
????????????????????????????}
????????????????????????}
????????????????????}
????????????????????break;
????????????????default:
????????????????????break;
????????????}????????????
????????}
只用增加ItemDataBound事件就可以. private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//生成鼠標前后著色的變化
????????????if(e.Item.ItemType!=ListItemType.Header)
????????????{
????????????????if(e.Item.ItemIndex%2==0)
????????????????{
????????????????????e.Item.Attributes.Add(?"onmouseout","this.style.backgroundColor='PaleGoldenrod'");
????????????????}
????????????????else
????????????????{
????????????????????e.Item.Attributes.Add(?"onmouseout","this.style.backgroundColor='LightGoldenrodYellow'");
????????????????}
????????????e.Item.Attributes.Add(?"onmouseover","this.style.backgroundColor='#C1D2EE'");
????????????}
????????}
2.//調整列寬
只用增加ItemDataBound事件就可以
private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//調整列寬
????????????switch?(e.Item.ItemType)
????????????{
????????????????case?ListItemType.Item:
????????????????case?ListItemType.AlternatingItem:
????????????????????e.Item.Attributes.Add("ondblclick","alert('"+e.Item.ItemIndex+"');");????????????????????
????????????????????break;
????????????????case?ListItemType.Header:
????????????????????e.Item.Cells[0].ColumnSpan=2;//合并單元格
????????????????????e.Item.Cells[1].Visible=false;
????????????????????break;
????????????????case?ListItemType.EditItem:
????????????????????for?(int?i=4;?i?<?DataGrid1.Columns.Count-2;?i++)//只調整被編輯的列
????????????????????{
????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????{
????????????????????????e.Item.Cells[i].Attributes.Add("Width",?"70px");
????????????????????}
????????????????????}
????????????????????????
????????}
3.如果編輯中省,市,區這樣的DropDownList,最好的方法就是做在三連動文件
只用增加ItemDataBound事件就可以
private?void?DataGrid1_ItemDataBound(object?sender,?DataGridItemEventArgs?e)
????????{????????????
????????????e.Item.Cells[1].Text=Convert.ToString(e.Item.ItemIndex+1);//產生序號
????????????//?在此生成三級連動
????????????????????string?sqlprovince="select?*?from?province";
????????????????????DataSet?dsprovince=GetDataSet(sqlprovince);
????????????????????//一級
????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????{
????????????????????????DropDownList?ddlprovince=(DropDownList)e.Item.FindControl("province");
????????????????????????ddlprovince.DataSource=dsprovince;
????????????????????????ddlprovince.DataTextField="province";
????????????????????????ddlprovince.DataValueField="provinceID";
????????????????????????ddlprovince.DataBind();
????????????????????????ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"provinceID"))).Selected=true;
????????????????????????//二級
????????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????????{
????????????????????????????if(ddlprovince.SelectedIndex!=-1)
????????????????????????????{
????????????????????????????????string?sqlcity="select?*?from?city?where?father='"+ddlprovince.SelectedValue+"'";
????????????????????????????????DropDownList?ddlcity=(DropDownList)e.Item.FindControl("city");
????????????????????????????????DataSet?dscity=GetDataSet(sqlcity);????????????????
????????????????????????????????ddlcity.DataSource=dscity;
????????????????????????????????ddlcity.DataTextField="city";
????????????????????????????????ddlcity.DataValueField="cityID";
????????????????????????????????ddlcity.DataBind();
????????????????????????????????ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
????????????????????????????????//三級
????????????????????????????????if(e.Item.ItemType==ListItemType.EditItem)
????????????????????????????????{
????????????????????????????????????if(ddlcity.SelectedIndex!=-1)
????????????????????????????????????{
????????????????????????????????????????string?sqlarea="select?*?from?area?where?father='"+ddlcity.SelectedValue+"'";
????????????????????????????????????????DropDownList?ddlarea=(DropDownList)e.Item.FindControl("area");
????????????????????????????????????????DataSet?dsarea=GetDataSet(sqlarea);????????????????
????????????????????????????????????????ddlarea.DataSource=dsarea;
????????????????????????????????????????ddlarea.DataTextField="area";
????????????????????????????????????????ddlarea.DataValueField="areaID";
????????????????????????????????????????ddlarea.DataBind();
????????????????????????????????????????ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
????????????????????????????????????}
????????????????????????????????}
????????????????????????????}
????????????????????????}
????????????????????}
????????????????????break;
????????????????default:
????????????????????break;
????????????}????????????
????????}
總結
以上是生活随笔為你收集整理的DataGrid 中的特殊应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于STRONG NAME
- 下一篇: NOCOUNT如何影响ADO.NET(S