?? datagrid使用心得(附大量代碼).txt
字號(hào):
str2="1";
}
else
{
str2="0";
}
賦值給 str2 ,原因是插入到數(shù)據(jù)庫(kù)的布爾型值只能是 1 或者 0
D. 獲取編輯狀態(tài)中的文本值,即該列是只讀的.
string storyID = (e.Item.Cells[0].Text).ToString();
8. 為 DataGrid 控件添加分頁(yè)事件
在 DataGrid 控件標(biāo)簽中加入如下代碼
OnPageIndExchanged="DataGrid1_PageIndexChanged"
在后臺(tái)中加入如下代碼
/// <summary>
/// 響應(yīng)分頁(yè)事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void DataGrid1_Page(Object sender, DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
DataBind();
}
9. 為 DataGrid 控件添加綁定事件,即在 DataGrid綁定時(shí)發(fā)生的事件處理
一般用些事件來(lái),做一些頁(yè)面上的效果.如更改背景色,文本框大小等.
OnItemDataBound="DataGrid1_ItemDataBound"
/// <summary>
/// 響應(yīng)DataGrid綁定事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#c8dafa'");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='white'");
}
else if (e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#c8dafa'");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='#f6f6f6'");
}
}
10. 為 DataGrid 控件添加接鈕處理事件程序
在 DataGrid 控件標(biāo)簽中加入如下代碼
OnItemCommand="ItemsGrid_Command"
在后臺(tái)中加入如下代碼
public void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
{
switch(((LinkButton)e.CommandSource).CommandName)
{
case "Delete":
int classID = Int32.Parse((e.Item.Cells[0].Text).ToString());
ActorClass.DeleteActorClass(classID);
if (Request.QueryString.Get("classID") != null)
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
else
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));
break;
// Add other cases here, if there are multiple ButtonColumns in
// the DataGrid control.
case "hidden":
int actorID = Int32.Parse((e.Item.Cells[0].Text).ToString());
ActorClass.HiddenActorClass(actorID);
if (Request.QueryString.Get("classID") != null)
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
else
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));
break;
case "MoveUp":
int actorclassID = Int32.Parse((e.Item.Cells[0].Text).ToString());
string orderID = (e.Item.Cells[5].Text).ToString();
ActorClass.MoveUp(orderID,actorclassID);
if (Request.QueryString.Get("classID") != null)
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
else
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by depth,orderID desc"));
break;
case "MoveDown":
actorclassID = Int32.Parse((e.Item.Cells[0].Text).ToString());
orderID = (e.Item.Cells[5].Text).ToString();
ActorClass.MoveDown(orderID,actorclassID);
if (Request.QueryString.Get("classID") != null)
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where parentID=" + Request.QueryString.Get("classID") + " order by depth,orderID desc"));
else
Common.BindData(DataGrid1,Common.GetSource("select * from ActorClass where depth=1 order by orderID"));
break;
default:
// Do nothing.
break;
}
}
11. 為 DataGrid添加模板列,但是內(nèi)容根據(jù)字段值來(lái)顯示"鏈接",還是文本
以下三個(gè)都是,根據(jù)字段列不同,而顯示內(nèi)容及顯示控件不同的處理代碼.
<asp:TemplateColumn HeaderText="子菜單">
<ItemTemplate>
<%# ActorClassManage.hasLeaf(DataBinder.Eval(Container.DataItem,"ActorClassID").ToString(),DataBinder.Eval(Container.DataItem,"child").ToString())%>
</ItemTemplate>
</asp:TemplateColumn>
public static string hasLeaf(string id,string child)
{
string lRtn = "";
if (Int32.Parse(child) > 0)
lRtn="<a href='Actorclassmanage.aspx?classID="+id+"'><font color=blue>子菜單(" + child + ")</font></a>";
else
lRtn = "無(wú)子菜單";
return lRtn;
}
<asp:TemplateColumn HeaderText="屬性">
<ItemTemplate>
<asp:LinkButton Text='<%# IsHidden(DataBinder.Eval(Container.DataItem,"ActorClassID").ToString(),(bool)DataBinder.Eval(Container.DataItem,"Enabled")) %>' runat="server" CommandName="hidden" ID="Linkbutton1"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
public static string IsHidden(string id,bool enabled)
{
string lRtn = "";
if (enabled == true)
{
lRtn = "[顯示]";
}
else
{
lRtn = "隱藏";
}
return lRtn;
}
public static void Sort(string actorclassID, string orderID)
{
string temp = "";
if (Int32.Parse(BgPicManage.GetMaxCode("actorclass","orderID")) == Int32.Parse(orderID))
{
temp += "<ipnut type='submit' value='向下移'>";
}
if (Int32.Parse(orderID) == 0)
{
temp += "<ipnut type='submit' value='向上移'>";
}
}
12. DataGrid 控件自定義分頁(yè)代碼
將下列代碼放于包含<DataGrid>的form中去,
<p style="FONT-SIZE:9pt" align="center">
<asp:label id="lblPageCount" runat="server"></asp:label>
<asp:label id="lblCurrentIndex" runat="server"></asp:label>
<asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
Font-size="8pt" ForeColor="navy" CommandArgument="0"></asp:linkbutton>
<asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>
<asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>
<asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server" Font-Name="verdana"
Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton>
</p>
后臺(tái)代碼
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁(yè)面
btnFirst.Text = "最首頁(yè)";
btnPrev.Text = "前一頁(yè)";
btnNext.Text = "下一頁(yè)";
btnLast.Text = "最后頁(yè)";
//綁定數(shù)據(jù)源
if (!Page.IsPostBack)
{
OpenDatabase();
BindGrid();
}
}
//用于顯示"第幾頁(yè),總*頁(yè)"
private void ShowStats()
{
lblCurrentIndex.Text = "第 " + (MyDataGrid.CurrentPageIndex + 1).ToString() + " 頁(yè)";
lblPageCount.Text = "總共 " + MyDataGrid.PageCount.ToString() + " 頁(yè)";
}
//響應(yīng)分頁(yè)按鈕
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch(arg)
{
case "next":
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
{
MyDataGrid.CurrentPageIndex += 1;
}
break;
case "prev":
if (MyDataGrid.CurrentPageIndex > 0)
{
MyDataGrid.CurrentPageIndex -= 1;
}
break;
case "last":
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
default:
MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
break;
}
BindGrid();
ShowStats();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -