ASP.NET GridView 控件操作示例

ASP.NET中,GridView控件是一个非常强大的工具,它允许开发者以表格的形式展示数据。本文将通过一个简单的示例,展示如何使用GridView控件进行数据绑定,以及如何实现行的上移和下移功能。

首先,需要创建一个ASP.NETWeb Forms应用程序,并在其中添加一个GridView控件。GridView控件可以通过拖放的方式添加到页面上,也可以通过代码动态创建。在本示例中,将使用拖放的方式添加GridView控件。

接下来,需要为GridView控件绑定数据。在ASP.NET中,可以使用DataTable对象来存储数据,并将其绑定到GridView控件。以下是一个简单的示例代码,展示了如何为GridView控件绑定数据:

public partial class _Default : System.Web.UI.Page { public DataTable dt = new DataTable(); public DataTable dtnew = new DataTable(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bindgrid(); // Bind Gridview with sample data } } /// <summary> /// Bind some sample data to GridView /// </summary> private void bindgrid() { dt.Columns.Add("Fname"); dt.Columns.Add("Lname"); dt.Columns.Add("Job"); dt.Columns.Add("Index"); DataRow dr; dr = dt.NewRow(); dr[0] = "ONE"; dr[1] = "User One"; dr[2] = "Manager"; dr[3] = 0; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = "TWO"; dr[1] = "User Two"; dr[2] = "Project Lead"; dr[3] = 1; dt.Rows.Add(dr); // ... 更多数据绑定代码 ... dt.AcceptChanges(); Gridviewselectbus.DataSource = dt; Gridviewselectbus.DataBind(); Session["dt"] = dt; } }

在上述代码中,首先创建了一个DataTable对象,并为其添加了四个列:Fname、Lname、Job和Index。然后,创建了一行数据,并将其添加到DataTable对象中。最后,将DataTable对象绑定到GridView控件,并调用DataBind方法来更新GridView控件的显示。

接下来,需要实现行的上移和下移功能。在GridView控件中,可以通过处理RowCommand事件来实现这一功能。以下是一个简单的示例代码,展示了如何实现行的上移和下移功能:

protected void Gridviewselectbus_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Up") { int index = Convert.ToInt32(e.CommandArgument); if (index == 0) { Label1.Text = "You Cant move record Up"; Label1.Visible = true; return; } dt = (DataTable)Session["dt"]; int value = Convert.ToInt32(dt.Rows[index]["Index"].ToString()); dt.Rows[index]["Index"] = Convert.ToInt32(index) - 1; dt.Rows[index - 1]["Index"] = value; dt.DefaultView.Sort = "Index"; dt.AcceptChanges(); dtnew = dt.Copy(); Gridviewselectbus.DataSource = dt; Gridviewselectbus.DataBind(); dt.AcceptChanges(); // ... 更新Session中的数据 ... Label1.Text = string.Empty; } if (e.CommandName == "Down") { int index = Convert.ToInt32(e.CommandArgument); dt = (DataTable)Session["dt"]; if (Convert.ToInt16(index + 1) == dt.Rows.Count) { Label1.Text = "You Cant move record down"; Label1.Visible = true; return; } int value = Convert.ToInt32(dt.Rows[index]["Index"].ToString()); dt.Rows[index]["Index"] = Convert.ToInt32(dt.Rows[index]["Index"].ToString()) + 1; dt.Rows[index + 1]["Index"] = value; dt.AcceptChanges(); dt.DefaultView.Sort = "Index"; dt.AcceptChanges(); dtnew = dt.Copy(); Gridviewselectbus.DataSource = dt; Gridviewselectbus.DataBind(); dt.AcceptChanges(); // ... 更新Session中的数据 ... Label1.Text = string.Empty; } }

在上述代码中,首先检查CommandName属性,以确定用户是否点击了上移或下移按钮。如果是上移按钮,将当前行的索引减1,并将上一行的索引加1。如果是下移按钮,将当前行的索引加1,并将下一行的索引减1。然后,更新DataTable对象,并重新绑定GridView控件以更新显示。

最后,需要在GridView控件中添加上移和下移按钮。以下是一个简单的示例代码,展示了如何在GridView控件中添加上移和下移按钮:

<asp:GridView ID="Gridviewselectbus" runat="server" Height="87px" Width="771px" HorizontalAlign="Center" AutoGenerateColumns="False" OnRowCommand="Gridviewselectbus_RowCommand" CellPadding="4" ForeColor="#333333" GridLines="None"> <RowStyle BorderColor="#999999" HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" BackColor="#EFF3FB" /> <EmptyDataRowStyle BorderColor="#999999" /> <Columns> <asp:BoundField DataField="Lname" HeaderText="Lname" SortExpression="Lname" /> <asp:BoundField DataField="Fname" HeaderText="Fname" SortExpression="Fname" /> <asp:BoundField DataField="Job" HeaderText="Job" SortExpression="Job" /> <asp:BoundField DataField="Index" HeaderText="Index" SortExpression="Index" /> <asp:TemplateField> <HeaderStyle Width="3%" /> <ItemTemplate> <asp:ImageButton ID="ibtnUp" runat="server" border="0" CommandArgument='<%# Eval("index") %>' CommandName="Up" Height="18px" ImageUrl="images/btn_GreenUP.png" Width="18px" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderStyle Width="3%" /> <ItemTemplate> <asp:ImageButton ID="ibtnDown" runat="server" border="0" CommandArgument='<%# Eval("index") %>' CommandName="Down" Height="18px" ImageUrl="images/btn_GreenDown.png" Width="18px" /> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView>

在上述代码中,为GridView控件添加了两个TemplateField字段,分别用于显示上移和下移按钮。在每个TemplateField字段中,使用ImageButton控件来创建按钮,并设置其CommandName属性为"Up"或"Down",以便于在RowCommand事件中进行处理。

通过上述步骤,可以实现一个具有上移和下移功能的GridView控件。用户可以通过点击按钮来调整行的顺序,从而实现数据的动态排序。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485