- 浏览: 19178 次
- 性别:
- 来自: 柳州
最新评论
gridview 的使用2009-08-03 13:02如何响应GridView 控件中的按钮事件 (转)自http://hi.baidu.com/%CC%EC%B5%D8%D3%D0%C7%E9%CC%EC%D2%E0%C0%CF/blog/item/4fd862ce18649034f9dc61f6.html在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。GridView 控件具有内置功能,用于进行编辑、删除和分页等操作。还可以添加按钮并使用 RowCommand 事件向控件添加自定义功能。
可以通过下面的方式向 GridView 控件添加自定义功能:
向 GridView 控件添加 ButtonField 字段。
向 GridView 控件中的模板添加 Button、LinkButton 或 ImageButton 控件。
可以使用事件参数的 CommandName 属性在事件处理程序方法中标识按钮的功能。如果使用的是 ButtonField 或 TemplateField 对象,则还可以使用 CommandArgument 属性来标识当前行。使用的是 ButtonField 对象时,CommandArgument 属性自动设置为行索引。使用的是 TemplateField 对象时,控件不会自动设置 CommandArgument 属性。在这种情况下,如果必须在事件处理程序中确定行索引,则可以使用数据绑定表达式将该按钮的 CommandArgument 属性设置为行索引。
响应 GridView 控件中的按钮事件
将按钮的 CommandName 属性设置为标识其功能的字符串,如“打印”或“复制”。
如果使用的是 TemplateField 对象并且必须在事件处理程序方法中访问行索引,则将按钮的 CommandArgument 属性设置为标识当前行的表达式。
下面的示例演示如何将 TemplateField 列中某个按钮的 CommandArgument 属性设置为当前行索引。在该示例中,该列包含一个显示购物车的 Button 控件。
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
为 GridView 控件的 RowCommand 事件创建一个方法。在该方法中,执行下列操作:
检查事件参数对象的 CommandName 属性来查看传入什么字符串。
如果需要,使用 CommandArgument 属性检索包含该按钮的行的索引。
为用户单击的按钮执行相应的逻辑。
下面的示例演示响应 GridView 控件中的按钮单击的方法。在该示例中,TemplateField 列中的按钮发送命令“AddToCart”。RowCommand 事件处理程序确定被单击的按钮。如果被单击的是购物车按钮,则代码执行相应的逻辑。
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
// Retrieve the row index stored in the
// CommandArgument property.
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button
// from the Rows collection.
GridViewRow row = GridView1.Rows[index];
// Add code here to add the item to the shopping cart.
}
}
posted @ 2009-04-10 18:33 minmin8110 阅读(57) | 评论 (0) | 编辑如何动态设置GridView 列宽默认情况下,会自动调整 GridView 控件中列的大小。列将呈现为不含宽度信息的 HTML 表单元格(td 元素);大多数浏览器都会调整表单元格的大小以适应列中最宽的内容。
如果需要,您可以通过编程方式设置 GridView 控件中个别列的宽度。如果列的宽度取决于只在运行时提供的信息,则这种方式非常有用。例如,您可能要根据列的内容(即根据 GridView 控件绑定到的数据)调整列的大小。
设置列宽的基本方法包括设置列模板的 Width 属性。如果希望根据列的内容设置宽度,可以处理 RowDataBound 事件。这使得您可以检查行中的数据。
动态设置列宽
在代码中,将 GridView 控件列的 ItemStyle 属性的 Width 属性设置为所需的宽度。
下面的代码示例说明如何将 GridView1 控件中所有列的宽度设置为用户在文本框中输入的值。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
int colWidth = Int16.Parse(Server.HtmlEncode(TextBox1.Text));
if (colWidth > 0)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
{
GridView1.Columns[i].ItemStyle.Width = colWidth;
}
}
}
catch
{
// Report error.
}
}
根据数据内容设置列宽
创建 RowDataBound 事件的处理程序。
每次在网格中的新行绑定数据时,都会引发 RowDataBound 事件,而且该事件将授予您对每行中数据的访问权限。
在事件处理程序中,执行下列操作:
创建 DataRowView 对象并为其分配当前网格行的 DataItem 值。
DataItem 属性将被类型化为一个对象。因此,您必须强制转换该属性。
测试数据行 (DataControlRowType) 以确保您使用的是数据绑定行而不是页眉或页脚。
从 DataRowView 对象提取要检查的数据值。
设置 ItemStyle 属性的 Width 属性。
将 ItemStyle 属性的 Wrap 属性设置为 false。
如果 Wrap 属性为 false,则会自动调整列的大小。
下面的代码示例说明在设置某一列(在本例中为第三列)的宽度时如何根据上一列中最宽数据元素的宽度进行设置。将为 GridView 控件所显示的每个数据行调用一次 RowDataBound 事件处理程序。这段代码将最宽元素的字符数存储在受保护的页成员中,并将列的宽度设置为字符数乘以 30(任意乘数)。
protected int widestData;
protected void GridView1_RowDataBound(object sender,
GridViewRowEventArgs e)
{
System.Data.DataRowView drv;
drv = (System.Data.DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (drv != null)
{
String catName = drv[1].ToString();
Response.Write(catName + "/");
int catNameLen = catName.Length;
if (catNameLen > widestData)
{
widestData = catNameLen;
GridView1.Columns[2].ItemStyle.Width =
widestData * 30;
GridView1.Columns[2].ItemStyle.Wrap = false;
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
widestData = 0;
}
posted @ 2009-04-10 18:31 minmin8110 阅读(114) | 评论 (0) | 编辑GridView 基本观msdn关于它的介绍
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(VS.80).aspx
GridView 类
注意:此类在 .NET Framework 2.0 版中是新增的。
在表中显示数据源的值,其中每列表示一个字段,每行表示一条记录。GridView 控件允许您选择和编辑这些项以及对它们进行排序。
命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)
[ControlValuePropertyAttribute("SelectedValue")]
public class GridView : CompositeDataBoundControl, IPostBackContainer, IPostBackEventHandler, ICallbackContainer,
ICallbackEventHandler
GridView 控件用来在表中显示数据源的值。每列表示一个字段,而每行表示一条记录。GridView 控件支持下面的功能:
绑定至数据源控件,如 SqlDataSource。
内置排序功能。
内置更新和删除功能。
内置分页功能。
内置行选择功能。
以编程方式访问 GridView 对象模型以动态设置属性、处理事件等。
多个键字段。
用于超链接列的多个数据字段。
可通过主题和样式进行自定义的外观。
列字段
GridView 控件中的每一列由一个 DataControlField 对象表示。默认情况下,AutoGenerateColumns 属性被设置为 true,为数据源中的每一个字段创建一个 AutoGeneratedField 对象。每个字段然后作为 GridView 控件中的列呈现,其顺序同于每一字段在数据源中出现的顺序。
通过将 AutoGenerateColumns 属性设置为 false,然后定义您自己的列字段集合,您也可以手动控制哪些列字段将显示在 GridView 控件中。不同的列字段类型决定控件中各列的行为。下表列出了可以使用的不同列字段类型。
列字段类型
说明
BoundField
显示数据源中某个字段的值。这是 GridView 控件的默认列类型。
ButtonField
为 GridView 控件中的每个项显示一个命令按钮。这使您可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。
CheckBoxField
为 GridView 控件中的每一项显示一个复选框。此列字段类型通常用于显示具有布尔值的字段。
CommandField
显示用来执行选择、编辑或删除操作的预定义命令按钮。
HyperLinkField
将数据源中某个字段的值显示为超链接。此列字段类型允许您将另一个字段绑定到超链接的 URL。
ImageField
为 GridView 控件中的每一项显示一个图像。
TemplateField
根据指定的模板为 GridView 控件中的每一项显示用户定义的内容。此列字段类型允许您创建自定义的列字段。
若要以声明方式定义列字段集合,请首先在 GridView 控件的开始和结束标记之间添加 <Columns> 开始和结束标记。接着,列出您想包含在 <Columns> 开始和结束标记之间的列字段。指定的列将以所列出的顺序添加到 Columns 集合中。Columns 集合存储该控件中的所有列字段,并允许您以编程方式管理 GridView 控件中的列字段。
显式声明的列字段可与自动生成的列字段结合在一起显示。两者同时使用时,先呈现显式声明的列字段,再呈现自动生成的列字段。
绑定到数据
GridView 控件可绑定到数据源控件(如 SqlDataSource、ObjectDataSource 等等),以及实现 System.Collections.IEnumerable 接口的任何数据源(如 System.Data.DataView、System.Collections.ArrayList 或 System.Collections.Hashtable)。使用以下方法之一将 GridView 控件绑定到适当的数据源类型:
若要绑定到某个数据源控件,请将 GridView 控件的 DataSourceID 属性设置为该数据源控件的 ID 值。GridView 控件自动绑定到指定的数据源控件,并且可利用该数据源控件的功能来执行排序、更新、删除和分页功能。这是绑定到数据的首选方法。
若要绑定到某个实现 System.Collections.IEnumerable 接口的数据源,请以编程方式将 GridView 控件的 DataSource 属性设置为该数据源,然后调用 DataBind 方法。当使用此方法时,GridView 控件不提供内置的排序、更新、删除和分页功能。需要使用适当的事件提供此功能。
有关数据绑定的更多信息,请参见 通过 ASP.NET 访问数据。
注意
此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在应用程序中显示从客户端发送来的任何信息之前,请检查它们是否包含可执行脚本、SQL 语句或其他代码。只要有可能,强烈建议在这些值显示在此控件中之前对它们进行 HTML 编码(默认情况下,BoundField 类会对值进行 HTML 编码)。ASP.NET 提供输入请求验证功能以阻止用户输入中的脚本和 HTML。还提供验证服务器控件以判断用户输入。有关更多信息,请参见 验证控件介绍。
数据操作
GridView 控件提供了很多内置功能,这些功能使得用户可以对控件中的项进行排序、更新、删除、选择和分页。当 GridView 控件绑定到某个数据源控件时,GridView 控件可利用该数据源控件的功能并提供自动排序、更新和删除功能。
注意
GridView 控件可为其他类型的数据源提供对排序、更新和删除的支持;但是,您必须提供一个适当的事件处理程序,其中包含对这些操作的实现。
排序允许用户通过单击某个特定列的标题来根据该列排序 GridView 控件中的项。若要启用排序,请将 AllowSorting 属性设置为 true。
当单击 ButtonField 或 TemplateField 列字段中命令名分别为“Edit”、“Delete”和“Select”的按钮时,自动更新、删除和选择功能启用。如果 AutoGenerateEditButton、AutoGenerateDeleteButton 或 AutoGenerateSelectButton 属性分别设置为 true 时,GridView 控件可自动添加带有“编辑”、“删除”或“选择”按钮的 CommandField 列字段。
注意
GridView 控件不直接支持将记录插入数据源。但是,通过将 GridView 控件与 DetailsView 或 FormView 控件结合使用则可以插入记录。有关更多信息,请分别参见 DetailsView 或 FormView。
GridView 控件可自动将数据源中的所有记录分成多页,而不是同时显示这些记录。若要启用分页,请将 AllowPaging 属性设置为 true。
自定义用户界面
您可以通过设置 GridView 控件的不同部分的样式属性自定义该控件的外观。下表列出了不同的样式属性。
样式属性
说明
AlternatingRowStyle
GridView 控件中的交替数据行的样式设置。当设置了此属性时,数据行交替使用 RowStyle 设置和 AlternatingRowStyle 设置进行显示。
EditRowStyle
GridView 控件中正在编辑的行的样式设置。
EmptyDataRowStyle
当数据源不包含任何记录时,GridView 控件中显示的空数据行的样式设置。
FooterStyle
GridView 控件的脚注行的样式设置。
HeaderStyle
GridView 控件的标题行的样式设置。
PagerStyle
GridView 控件的页导航行的样式设置。
RowStyle
GridView 控件中的数据行的样式设置。当还设置了 AlternatingRowStyle 属性时,数据行交替使用 RowStyle 设置和 AlternatingRowStyle 设置进行显示。
SelectedRowStyle
GridView 控件中的选中行的样式设置。
也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。
属性
说明
ShowFooter
显示或隐藏 GridView 控件的页脚节。
ShowHeader
显示或隐藏 GridView 控件的页眉节。
事件
GridView 控件提供多个您可以对其进行编程的事件。这使您可以在每次发生事件时都运行一个自定义例程。下表列出了 GridView 控件支持的事件。
事件
说明
PageIndexChanged
在单击某一页导航按钮时,但在 GridView 控件处理分页操作之后发生。此事件通常用于以下情形:在用户定位到该控件中的另一页之后,您需要执行某项任务。
PageIndexChanging
在单击某一页导航按钮时,但在 GridView 控件处理分页操作之前发生。此事件通常用于取消分页操作。
RowCancelingEdit
在单击某一行的“取消”按钮时,但在 GridView 控件退出编辑模式之前发生。此事件通常用于停止取消操作。
RowCommand
当单击 GridView 控件中的按钮时发生。此事件通常用于在控件中单击按钮时执行某项任务。
RowCreated
当在 GridView 控件中创建新行时发生。此事件通常用于在创建行时修改行的内容。
RowDataBound
在 GridView 控件中将数据行绑定到数据时发生。此事件通常用于在行绑定到数据时修改行的内容。
RowDeleted
在单击某一行的“删除”按钮时,但在 GridView 控件从数据源中删除相应记录之后发生。此事件通常用于检查删除操作的结果。
RowDeleting
在单击某一行的“删除”按钮时,但在 GridView 控件从数据源中删除相应记录之前发生。此事件通常用于取消删除操作。
RowEditing
发生在单击某一行的“编辑”按钮以后,GridView 控件进入编辑模式之前。此事件通常用于取消编辑操作。
RowUpdated
发生在单击某一行的“更新”按钮,并且 GridView 控件对该行进行更新之后。此事件通常用于检查更新操作的结果。
RowUpdating
发生在单击某一行的“更新”按钮以后,GridView 控件对该行进行更新之前。此事件通常用于取消更新操作。
SelectedIndexChanged
发生在单击某一行的“选择”按钮,GridView 控件对相应的选择操作进行处理之后。此事件通常用于在该控件中选定某行之后执行某项任务。
SelectedIndexChanging
发生在单击某一行的“选择”按钮以后,GridView 控件对相应的选择操作进行处理之前。此事件通常用于取消选择操作。
Sorted
在单击用于列排序的超链接时,但在 GridView 控件对相应的排序操作进行处理之后发生。此事件通常用于在用户单击用于列排序的超链接之后执行某个任务。
Sorting
在单击用于列排序的超链接时,但在 GridView 控件对相应的排序操作进行处理之前发生。此事件通常用于取消排序操作或执行自定义的排序例程。
可以通过下面的方式向 GridView 控件添加自定义功能:
向 GridView 控件添加 ButtonField 字段。
向 GridView 控件中的模板添加 Button、LinkButton 或 ImageButton 控件。
可以使用事件参数的 CommandName 属性在事件处理程序方法中标识按钮的功能。如果使用的是 ButtonField 或 TemplateField 对象,则还可以使用 CommandArgument 属性来标识当前行。使用的是 ButtonField 对象时,CommandArgument 属性自动设置为行索引。使用的是 TemplateField 对象时,控件不会自动设置 CommandArgument 属性。在这种情况下,如果必须在事件处理程序中确定行索引,则可以使用数据绑定表达式将该按钮的 CommandArgument 属性设置为行索引。
响应 GridView 控件中的按钮事件
将按钮的 CommandName 属性设置为标识其功能的字符串,如“打印”或“复制”。
如果使用的是 TemplateField 对象并且必须在事件处理程序方法中访问行索引,则将按钮的 CommandArgument 属性设置为标识当前行的表达式。
下面的示例演示如何将 TemplateField 列中某个按钮的 CommandArgument 属性设置为当前行索引。在该示例中,该列包含一个显示购物车的 Button 控件。
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="AddButton" runat="server"
CommandName="AddToCart"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
Text="Add to Cart" />
</ItemTemplate>
</asp:TemplateField>
为 GridView 控件的 RowCommand 事件创建一个方法。在该方法中,执行下列操作:
检查事件参数对象的 CommandName 属性来查看传入什么字符串。
如果需要,使用 CommandArgument 属性检索包含该按钮的行的索引。
为用户单击的按钮执行相应的逻辑。
下面的示例演示响应 GridView 控件中的按钮单击的方法。在该示例中,TemplateField 列中的按钮发送命令“AddToCart”。RowCommand 事件处理程序确定被单击的按钮。如果被单击的是购物车按钮,则代码执行相应的逻辑。
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if (e.CommandName == "AddToCart")
{
// Retrieve the row index stored in the
// CommandArgument property.
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button
// from the Rows collection.
GridViewRow row = GridView1.Rows[index];
// Add code here to add the item to the shopping cart.
}
}
posted @ 2009-04-10 18:33 minmin8110 阅读(57) | 评论 (0) | 编辑如何动态设置GridView 列宽默认情况下,会自动调整 GridView 控件中列的大小。列将呈现为不含宽度信息的 HTML 表单元格(td 元素);大多数浏览器都会调整表单元格的大小以适应列中最宽的内容。
如果需要,您可以通过编程方式设置 GridView 控件中个别列的宽度。如果列的宽度取决于只在运行时提供的信息,则这种方式非常有用。例如,您可能要根据列的内容(即根据 GridView 控件绑定到的数据)调整列的大小。
设置列宽的基本方法包括设置列模板的 Width 属性。如果希望根据列的内容设置宽度,可以处理 RowDataBound 事件。这使得您可以检查行中的数据。
动态设置列宽
在代码中,将 GridView 控件列的 ItemStyle 属性的 Width 属性设置为所需的宽度。
下面的代码示例说明如何将 GridView1 控件中所有列的宽度设置为用户在文本框中输入的值。
protected void Button1_Click(object sender, EventArgs e)
{
try
{
int colWidth = Int16.Parse(Server.HtmlEncode(TextBox1.Text));
if (colWidth > 0)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
{
GridView1.Columns[i].ItemStyle.Width = colWidth;
}
}
}
catch
{
// Report error.
}
}
根据数据内容设置列宽
创建 RowDataBound 事件的处理程序。
每次在网格中的新行绑定数据时,都会引发 RowDataBound 事件,而且该事件将授予您对每行中数据的访问权限。
在事件处理程序中,执行下列操作:
创建 DataRowView 对象并为其分配当前网格行的 DataItem 值。
DataItem 属性将被类型化为一个对象。因此,您必须强制转换该属性。
测试数据行 (DataControlRowType) 以确保您使用的是数据绑定行而不是页眉或页脚。
从 DataRowView 对象提取要检查的数据值。
设置 ItemStyle 属性的 Width 属性。
将 ItemStyle 属性的 Wrap 属性设置为 false。
如果 Wrap 属性为 false,则会自动调整列的大小。
下面的代码示例说明在设置某一列(在本例中为第三列)的宽度时如何根据上一列中最宽数据元素的宽度进行设置。将为 GridView 控件所显示的每个数据行调用一次 RowDataBound 事件处理程序。这段代码将最宽元素的字符数存储在受保护的页成员中,并将列的宽度设置为字符数乘以 30(任意乘数)。
protected int widestData;
protected void GridView1_RowDataBound(object sender,
GridViewRowEventArgs e)
{
System.Data.DataRowView drv;
drv = (System.Data.DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (drv != null)
{
String catName = drv[1].ToString();
Response.Write(catName + "/");
int catNameLen = catName.Length;
if (catNameLen > widestData)
{
widestData = catNameLen;
GridView1.Columns[2].ItemStyle.Width =
widestData * 30;
GridView1.Columns[2].ItemStyle.Wrap = false;
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
widestData = 0;
}
posted @ 2009-04-10 18:31 minmin8110 阅读(114) | 评论 (0) | 编辑GridView 基本观msdn关于它的介绍
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview(VS.80).aspx
GridView 类
注意:此类在 .NET Framework 2.0 版中是新增的。
在表中显示数据源的值,其中每列表示一个字段,每行表示一条记录。GridView 控件允许您选择和编辑这些项以及对它们进行排序。
命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)
[ControlValuePropertyAttribute("SelectedValue")]
public class GridView : CompositeDataBoundControl, IPostBackContainer, IPostBackEventHandler, ICallbackContainer,
ICallbackEventHandler
GridView 控件用来在表中显示数据源的值。每列表示一个字段,而每行表示一条记录。GridView 控件支持下面的功能:
绑定至数据源控件,如 SqlDataSource。
内置排序功能。
内置更新和删除功能。
内置分页功能。
内置行选择功能。
以编程方式访问 GridView 对象模型以动态设置属性、处理事件等。
多个键字段。
用于超链接列的多个数据字段。
可通过主题和样式进行自定义的外观。
列字段
GridView 控件中的每一列由一个 DataControlField 对象表示。默认情况下,AutoGenerateColumns 属性被设置为 true,为数据源中的每一个字段创建一个 AutoGeneratedField 对象。每个字段然后作为 GridView 控件中的列呈现,其顺序同于每一字段在数据源中出现的顺序。
通过将 AutoGenerateColumns 属性设置为 false,然后定义您自己的列字段集合,您也可以手动控制哪些列字段将显示在 GridView 控件中。不同的列字段类型决定控件中各列的行为。下表列出了可以使用的不同列字段类型。
列字段类型
说明
BoundField
显示数据源中某个字段的值。这是 GridView 控件的默认列类型。
ButtonField
为 GridView 控件中的每个项显示一个命令按钮。这使您可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。
CheckBoxField
为 GridView 控件中的每一项显示一个复选框。此列字段类型通常用于显示具有布尔值的字段。
CommandField
显示用来执行选择、编辑或删除操作的预定义命令按钮。
HyperLinkField
将数据源中某个字段的值显示为超链接。此列字段类型允许您将另一个字段绑定到超链接的 URL。
ImageField
为 GridView 控件中的每一项显示一个图像。
TemplateField
根据指定的模板为 GridView 控件中的每一项显示用户定义的内容。此列字段类型允许您创建自定义的列字段。
若要以声明方式定义列字段集合,请首先在 GridView 控件的开始和结束标记之间添加 <Columns> 开始和结束标记。接着,列出您想包含在 <Columns> 开始和结束标记之间的列字段。指定的列将以所列出的顺序添加到 Columns 集合中。Columns 集合存储该控件中的所有列字段,并允许您以编程方式管理 GridView 控件中的列字段。
显式声明的列字段可与自动生成的列字段结合在一起显示。两者同时使用时,先呈现显式声明的列字段,再呈现自动生成的列字段。
绑定到数据
GridView 控件可绑定到数据源控件(如 SqlDataSource、ObjectDataSource 等等),以及实现 System.Collections.IEnumerable 接口的任何数据源(如 System.Data.DataView、System.Collections.ArrayList 或 System.Collections.Hashtable)。使用以下方法之一将 GridView 控件绑定到适当的数据源类型:
若要绑定到某个数据源控件,请将 GridView 控件的 DataSourceID 属性设置为该数据源控件的 ID 值。GridView 控件自动绑定到指定的数据源控件,并且可利用该数据源控件的功能来执行排序、更新、删除和分页功能。这是绑定到数据的首选方法。
若要绑定到某个实现 System.Collections.IEnumerable 接口的数据源,请以编程方式将 GridView 控件的 DataSource 属性设置为该数据源,然后调用 DataBind 方法。当使用此方法时,GridView 控件不提供内置的排序、更新、删除和分页功能。需要使用适当的事件提供此功能。
有关数据绑定的更多信息,请参见 通过 ASP.NET 访问数据。
注意
此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在应用程序中显示从客户端发送来的任何信息之前,请检查它们是否包含可执行脚本、SQL 语句或其他代码。只要有可能,强烈建议在这些值显示在此控件中之前对它们进行 HTML 编码(默认情况下,BoundField 类会对值进行 HTML 编码)。ASP.NET 提供输入请求验证功能以阻止用户输入中的脚本和 HTML。还提供验证服务器控件以判断用户输入。有关更多信息,请参见 验证控件介绍。
数据操作
GridView 控件提供了很多内置功能,这些功能使得用户可以对控件中的项进行排序、更新、删除、选择和分页。当 GridView 控件绑定到某个数据源控件时,GridView 控件可利用该数据源控件的功能并提供自动排序、更新和删除功能。
注意
GridView 控件可为其他类型的数据源提供对排序、更新和删除的支持;但是,您必须提供一个适当的事件处理程序,其中包含对这些操作的实现。
排序允许用户通过单击某个特定列的标题来根据该列排序 GridView 控件中的项。若要启用排序,请将 AllowSorting 属性设置为 true。
当单击 ButtonField 或 TemplateField 列字段中命令名分别为“Edit”、“Delete”和“Select”的按钮时,自动更新、删除和选择功能启用。如果 AutoGenerateEditButton、AutoGenerateDeleteButton 或 AutoGenerateSelectButton 属性分别设置为 true 时,GridView 控件可自动添加带有“编辑”、“删除”或“选择”按钮的 CommandField 列字段。
注意
GridView 控件不直接支持将记录插入数据源。但是,通过将 GridView 控件与 DetailsView 或 FormView 控件结合使用则可以插入记录。有关更多信息,请分别参见 DetailsView 或 FormView。
GridView 控件可自动将数据源中的所有记录分成多页,而不是同时显示这些记录。若要启用分页,请将 AllowPaging 属性设置为 true。
自定义用户界面
您可以通过设置 GridView 控件的不同部分的样式属性自定义该控件的外观。下表列出了不同的样式属性。
样式属性
说明
AlternatingRowStyle
GridView 控件中的交替数据行的样式设置。当设置了此属性时,数据行交替使用 RowStyle 设置和 AlternatingRowStyle 设置进行显示。
EditRowStyle
GridView 控件中正在编辑的行的样式设置。
EmptyDataRowStyle
当数据源不包含任何记录时,GridView 控件中显示的空数据行的样式设置。
FooterStyle
GridView 控件的脚注行的样式设置。
HeaderStyle
GridView 控件的标题行的样式设置。
PagerStyle
GridView 控件的页导航行的样式设置。
RowStyle
GridView 控件中的数据行的样式设置。当还设置了 AlternatingRowStyle 属性时,数据行交替使用 RowStyle 设置和 AlternatingRowStyle 设置进行显示。
SelectedRowStyle
GridView 控件中的选中行的样式设置。
也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。
属性
说明
ShowFooter
显示或隐藏 GridView 控件的页脚节。
ShowHeader
显示或隐藏 GridView 控件的页眉节。
事件
GridView 控件提供多个您可以对其进行编程的事件。这使您可以在每次发生事件时都运行一个自定义例程。下表列出了 GridView 控件支持的事件。
事件
说明
PageIndexChanged
在单击某一页导航按钮时,但在 GridView 控件处理分页操作之后发生。此事件通常用于以下情形:在用户定位到该控件中的另一页之后,您需要执行某项任务。
PageIndexChanging
在单击某一页导航按钮时,但在 GridView 控件处理分页操作之前发生。此事件通常用于取消分页操作。
RowCancelingEdit
在单击某一行的“取消”按钮时,但在 GridView 控件退出编辑模式之前发生。此事件通常用于停止取消操作。
RowCommand
当单击 GridView 控件中的按钮时发生。此事件通常用于在控件中单击按钮时执行某项任务。
RowCreated
当在 GridView 控件中创建新行时发生。此事件通常用于在创建行时修改行的内容。
RowDataBound
在 GridView 控件中将数据行绑定到数据时发生。此事件通常用于在行绑定到数据时修改行的内容。
RowDeleted
在单击某一行的“删除”按钮时,但在 GridView 控件从数据源中删除相应记录之后发生。此事件通常用于检查删除操作的结果。
RowDeleting
在单击某一行的“删除”按钮时,但在 GridView 控件从数据源中删除相应记录之前发生。此事件通常用于取消删除操作。
RowEditing
发生在单击某一行的“编辑”按钮以后,GridView 控件进入编辑模式之前。此事件通常用于取消编辑操作。
RowUpdated
发生在单击某一行的“更新”按钮,并且 GridView 控件对该行进行更新之后。此事件通常用于检查更新操作的结果。
RowUpdating
发生在单击某一行的“更新”按钮以后,GridView 控件对该行进行更新之前。此事件通常用于取消更新操作。
SelectedIndexChanged
发生在单击某一行的“选择”按钮,GridView 控件对相应的选择操作进行处理之后。此事件通常用于在该控件中选定某行之后执行某项任务。
SelectedIndexChanging
发生在单击某一行的“选择”按钮以后,GridView 控件对相应的选择操作进行处理之前。此事件通常用于取消选择操作。
Sorted
在单击用于列排序的超链接时,但在 GridView 控件对相应的排序操作进行处理之后发生。此事件通常用于在用户单击用于列排序的超链接之后执行某个任务。
Sorting
在单击用于列排序的超链接时,但在 GridView 控件对相应的排序操作进行处理之前发生。此事件通常用于取消排序操作或执行自定义的排序例程。
发表评论
-
C#与JAVA
2010-09-30 10:11 752C#与JAVA的相同之处:由于C#与JAVA都是基于C++发展 ... -
ASP.NET MVC (一)
2010-09-28 16:32 762从零开始学习ASP.NET MVC:开天辟地入门篇(一) 20 ... -
Global.asax详解
2010-09-27 10:58 983在网上找了N多相关的东西总说的不够细,现在终于找到了.可以了解 ... -
C# 接口的显示实现和隐示实现
2010-09-27 10:33 915接口的实现很多人都知道,但接口的实现方式分显示实现和隐示实现不 ... -
LINQ关联关系
2010-09-26 17:07 807LINQ to SQL 中实体类之间 ... -
VS2008增加AJAX Control Toolkit3.5支持
2010-09-11 01:29 1677第一个资源是vs2008的下载资源。 VS2008破解方 ... -
Linq to Sql:N层应用中的查询(上) : 返回自定义实体
2010-09-05 21:28 1997如果允许在UI层直接访问Linq to Sql的DataCon ... -
C#集合类(HashTable, Dictionary, ArrayList)与HashTable线程安全
2010-09-01 11:21 1812HashTable中的key/value均为object类型, ... -
Asp.Net 2.0 数据库基本操作方法学习
2010-08-30 20:06 799本文将向大家简单介绍一下Asp.Net2.0数据库基本操作方法 ... -
ASP.NET防止用户多次登录的方法
2010-08-30 13:47 750using System; using System.C ...
相关推荐
《AspxGridView使用手册》是关于DevExpress公司的ASP.NET Web Forms控件AspxGridView的详细指南。这个控件是一个强大的网格视图,提供了丰富的功能,包括数据绑定、行操作、数据编辑、分页、排序、过滤、分组以及...
本示例中的"GridView使用SqlDataAdapter实现增删改查"是一个典型的Web应用程序开发案例,通过结合ASP.NET和SQL Server数据库,展示了如何在网页上实现数据的动态操作。 首先,`User表.sql`文件通常包含了创建用户表...
本资源提供了关于 GridView 使用的全面指南,涵盖了从基础到高级的各种场景。 1. **表头表尾定制** GridView 的表头可以自定义,包括添加样式、合并单元格、添加操作列等。表尾通常用于显示总计或统计信息,可以...
以下是对GridView使用技巧的详细汇总: 1. **布局定义**:GridView的布局通常在XML文件中定义,通过`<GridView>`标签设置其属性,例如`android:numColumns`指定列数,`android:horizontalSpacing`和`android:...
以下是对`C#中gridview使用实例`涉及的知识点的详细说明: 1. **基本使用**: GridView控件通过数据源绑定来显示数据,常见的数据源有SQLDataSource、ObjectDataSource等。在页面的后台代码中,可以通过`GridView1...
本文将深入探讨GridView的各种使用方法,包括代码分页、保存和恢复CheckBox的状态、排序、与DropDownList和CheckBox结合使用,以及实现一些高级功能如自定义样式和功能增强。 1. **代码分页** GridView支持代码...
在这个"Android GridView使用例子"中,我们将深入探讨如何有效地利用GridView来构建动态且交互性强的用户界面。 1. **GridView的基本概念** GridView继承自AbsListView,它可以显示一列或多列水平对齐的项目。每个...
本示例"Gallery+GridView使用的demo"旨在演示如何在应用程序中有效地结合这两个控件来创建一个图片浏览体验。让我们深入探讨这两个控件以及如何将它们整合到一个项目中。 首先,`Gallery`是一个水平滚动的视图,它...
在这个"Android GridView使用示例"中,我们将深入探讨如何在Android应用程序中有效地使用GridView。 首先,我们需要在XML布局文件中声明GridView。一个基本的GridView声明可能如下所示: ```xml <GridView ...
下面我们将深入探讨"C#中GridView使用大全"的相关知识点。 1. **数据绑定**: - GridView可以通过`DataSource`属性绑定到各种数据源,如SQL数据库、数组、集合或自定义对象。 - 使用`DataSourceID`属性与数据源...
在本文中,我们将深入探讨GridView的使用技巧、大全、常见问题以及常用方法,旨在帮助开发者更好地理解和应用这一强大的工具。 1. GridView简介: GridView控件允许用户以表格的形式显示数据,通常与数据源(如...
在这个“GridView使用技巧-1”中,我们将深入探讨一些关键的使用方法和优化策略。 一、GridView概述 GridView是.NET Framework中System.Web.UI.WebControls命名空间的一部分,主要用于在网页上显示数据源中的数据。...
为了解决这个问题,我们可以采用“GridView使用div分页,减少访问服务器频率”的方法,来优化性能。 首先,我们需要理解默认的GridView分页工作原理。默认情况下,GridView每次切换分页都会重新绑定数据,这导致了...
在“gridview使用大集合”这个主题中,我们主要探讨GridView的使用方法,经典应用场景,以及如何进行全部操作,并提供相关的源代码供参考。 一、GridView的基本使用 1. 添加依赖:在项目的build.gradle文件中添加...
### Gridview使用精髓 在Web开发中,特别是ASP.NET中,`GridView`控件是非常重要的一个组成部分,它能够帮助开发者快速地实现数据展示、编辑、排序、分页等功能。本文将深入探讨`GridView`控件的使用精髓,帮助读者...
本项目"viewPager结合Gridview使用"就是一个典型的例子,它展示了如何将这两者结合,以展示手机上所有已安装的应用程序(APK)。 `ViewPager`是由Android Support Library提供的一个滑动视图容器,主要用于实现左右...