DataGrid的列操作个人总结

datagrid

绑定列
<asp:BoundColumn
DataField="datetime" 字段名
HeaderText="时间" 列表头
HeaderImagerUrl=""> 显示于列页眉中的图片,此图片会取代HeaderText的文本
</asp:BoundColumn>

如果“自动创建列”为true,则绑定列先显示,接着显示自动列,而且自动生成的列不会被加入到columns集合中。

超级链接列
<asp:HyperLinkColumn
Text="文本" //各列显示相同的文本,此时DataTextField优先
DataTextField="代码" //绑定的字段名
DataTextFormatString="" //来自定义DataTextField的显示格式

NavigateUrl="url" //所有列使用同一url
DataNavigateUrlField="codeId" //URL字段变量,即传递的变量值,有时和DataTextField同
DataNavigateUrlFormatString="WebForm2.aspx?code={0}" URL格式字符串,GET方式传递的字符串
Target="_blank" > //打开链接打开的位置或方式
</asp:HyperLinkColumn>

按钮列

<Columns>
普通按钮
<asp:ButtonColumn
Text="所有列统一按钮名" //所有列统一按钮名
DataTextField="持股名称" //绑定字段
CommandName="btn"> //
HeaderText="操作"> //列表头
</asp:ButtonColumn>

选择按钮
<asp:ButtonColumn
Text="选择"
DataTextField="持股名称"
CommandName="Select">
</asp:ButtonColumn>

编辑按钮
<asp:EditCommandColumn
ButtonType="LinkButton"
UpdateText="更新"
CancelText="取消"
EditText="编辑">
</asp:EditCommandColumn>

删除按钮
<asp:ButtonColumn
Text="删除"
ButtonType="PushButton"
CommandName="Delete">
</asp:ButtonColumn>

</Columns>

CommandName设置在DataGrid1_ItemCommand()事件中
获取同一行中哪个按钮被点击: string s=e.CommandName;

//默认是linkbutton,也必须是linkbutton

单击按钮首先响应 DataGrid1_ItemCommand 事件
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

TableRow tr=e.Item; //得到操作的当前行,存入控件
string code=tr.Cells[1].Text; //丛控件再得到单元格的文本
string time=tr.Cells[2].Text;

TableCell cell1=e.Item.Cells[1]; //这样也可以取得单元格的值,存入控件

Server.Transfer("WebForm2.aspx?code="+code+" ∨ time="+time);
}

接着不同按钮响应不同事件:
编辑
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.datashow();
}

更新
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//得到主键列的值
int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex];
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
根据主键,用单元格的数据更新主键对应的纪录
//写update语句

}

取消
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
this.datashow();
}

注意:可以将主键绑定列设为只读;

删除
//应首先设置DataKeyField属性为主键列
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

//得到主键列的值
int i=(int)this.DataGrid1.DataKeys[e.Item.ItemIndex];
或 string ii=(string)this.DataGrid1.DataKeys[e.Item.ItemIndex];
//写删除语句,

}

当在到服务器发送之间,在数据列表控件中选择不同的项时,引发 SelectedIndexChanged 事件
也可通过int i2 =(int)this.DataGrid1.DataKeys[this.DataGrid1.SelectedIndex];得到主键值

DataKeyField 是一个字段,他的所有键值内容被填入DataKeys集合中,通过DataKeys[]来去某条记录的主键值

排序

指定默认排序 :
选择“自动创建列”true;
在“行为”部分,选择“允许排序”框。
在SortCommand 事件里,通过e.SortExpression对视图重新排序绑定。
(缺点:每一列都有“链接”按钮,)

指定自定义排序:
选择“自动创建列”false;
在需要排序的列,设置SortExpression
注意:没有排序表达式的列将不引发 SortCommand 事件,所以先设置排序表达式

private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
string sql="server=127.0.0.1;database=ltp;user id=sa;password=";
SqlConnection mycon=new SqlConnection(sql);

string selsql="select * from data";
SqlDataAdapter da=new SqlDataAdapter(selsql,mycon)

时间: 2024-11-03 01:19:17

DataGrid的列操作个人总结的相关文章

手工创建datagrid数据列/模板列/按钮事件+简单的数据操作类(asp.net)

  1)创建datagrid数据列/模板列/按钮的操作类:using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System

DataGrid 动态列

datagrid|动态 模版控件能让用户几乎不用花费任何时间就创建出复杂的用户界面. Asp.net有很多控件都使用了模版技术(DataGrid就是一个例子). 而这些控件都工作得很好, 通常, 模版可以被保存为ascx文件以增加复用性. 很有可能, 事前你是不知道你的控件是怎么布局的, 而且你需要动态的添加一些模版以应付不同的事件. 使用模版的另一个优势,就是它们能动态的添加到你的控件里面去. 这样的话, 你可以事先设计好模版, 然后通过简单的几行代码就添加到你的控件中. 下面这篇文章就要告诉

java-怎样在easyui中的datagrid的列中添加combobox并动态获取数据到combobox中?

问题描述 怎样在easyui中的datagrid的列中添加combobox并动态获取数据到combobox中? <table id="data" class="easyui-datagrid" style="width:700px;height:250px" url="getAllServer.do" data-options="pageSize:5 ,pageList: [3,5,10]" tool

求教:获得datagrid模板列里控件的值

问题描述 我用的2005我在datagrid模板列里绑定了一个textbox控件,在页面上另外有一个保存按钮,我想能实现在点击保存按钮的时候,获得textbox的值,但是我在响应点击事件的时候,通过findcontrol可以找到这个textbox,不过里面的值却始终为空.请大家帮忙啊!谢谢<asp:DataGridID="gdData"runat="server"CssClass="sdatagridex_a"CellPadding=&qu

如何同时对多个表或列操作

如何同时对多个表或列操作     通过使用这个存储过程,你就可以方便的对数据库中具有一定规则的或者全部表,对这里的字段进行各种操作,具体看示例! CREATE PROCEDURE SP_execSQLonDB (@TABLENAME VARCHAR(50),        --表名条件  @COLUMNNAME VARCHAR(50),       --字段条件  @SQL NVARCHAR(4000),           --执行的SQL  @INCLUDE_NTI CHAR(1) = 'N

RadioButtonList在Datagrid模板列中的应用

datagrid|模板 1.RadioButtonList插入DataGrid模板列的方法与其他控件插入的方法一致. 2.从数据库中读取RadioButtonList状态的方法 1) .aspx文件 <asp:RadioButtonList .... SelectedIndex='<%# Container.DataItem("strRBL") %>'> 2) .vb文件 objDataSet.Tables(0).Columns.Add("strRBL

4个相关的excel列操作小技巧

  4个相关的excel列操作小技巧          1.调整列宽和另一个表相同 用途:把两个表的列宽调整一致,不用再一列一列的手工调整了. 操作方法:选取表1的列(A:D) - 复制 - 选取表2的列(F:I) - 选择性粘贴 - 列宽. 2.快速选取指定的列 用途:在一个几十列数据的表格中,快速跳转到指定的列. 操作方法:选取表格的前2行的区域(不要选整行) - 公式 - 根据所选内容创建 - 首行. 设置完成后,打开左上角地址框,点击就可以跳转到指定的列. 取消方法:公式 - 名称管理器

脚本-VBA终止用户的删除行/列操作

问题描述 VBA终止用户的删除行/列操作 做了一个简单的Excel文件,有一些vba脚本,如果用户随便删除整行/整列会出错.所以,想在Worksheet_Change事件判断当用户进行删除整行或整列操作时,弹一个yes/no框,若用户选择no,则终止删除操作.谢谢. 解决方案 SheetChange里面用MsgBox判断下,选择No就调用Redo撤销

asp.net-easyui datagrid 执行搜索操作后页面仍然显示原数据

问题描述 easyui datagrid 执行搜索操作后页面仍然显示原数据 用的平台是asp.net,初始化不带参数的查询时数据能正常显示,在datagrid上面的搜索栏输入参数 执行搜索功能,表格刷新以后仍然是原来的数据,但后台传过来的json确实是查询参数筛选的数据, 格式也是正确的,但刷新后就是原来的数据,这是因为什么? 解决方案 你怎么知道后台回传的数据是正确的.用开发工具看过了?而且你怎么查询的reload或者load附带参数?$('#xxx').datagrid('reload',{