如何将DataGrid纵向排列【困扰1星期了】

问题描述

DataGrid中默认的排列是abc11.11.2修改删除55.55.8修改删除由于abc等列比较多,横向太长,不利于观察怎么才能改成.修改修改删除删除a15b1.15.5c1.25.8请教啊~~我的原代码如下:请直接修改,或者贴出更好的东西。DATAGIRD原代码如下:<asp:datagridid="DataGrid1"Runat="server"DataKeyField="OrganizationID"EnableViewState="true"OnItemCreated="Deleteconfirm"PageSize="5"OnDeleteCommand="MyDataGrid_Delete"OnUpdateCommand="MyDataGrid_Update"OnCancelCommand="MyDataGrid_Cancel"OnEditCommand="MyDataGrid_Edit"AutoGenerateColumns="False"><ItemStyleBackColor="white"ForeColor="#330099"/><HeaderStyleFont-Bold="true"ForeColor="#330099"BackColor="#FFFFCC"/><Columns><asp:BoundColumnDataField="OrganizationID"SortExpression="OrganizationID"ReadOnly="True"HeaderText="编号"></asp:BoundColumn><asp:BoundColumnDataField="CategoryID"SortExpression="OrganizationID"ReadOnly="True"HeaderText="类别编号"></asp:BoundColumn><asp:TemplateColumnHeaderText="名称"SortExpression="OrganizationID"><ItemTemplate><asp:Labelrunat="server"ID="label_OrganizationName"Text='<%#DataBinder.Eval(Container.DataItem,"OrganizationName")%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxrunat="server"Width="120px"ID="edit_OrganizationName"Text='<%#DataBinder.Eval(Container.DataItem,"OrganizationName")%>'></asp:TextBox></EditItemTemplate></asp:TemplateColumn><asp:TemplateColumnHeaderText="缩写"SortExpression="OrganizationID"><ItemTemplate><asp:Labelrunat="server"ID="Label_Abbreviation"Text='<%#DataBinder.Eval(Container.DataItem,"Abbreviation")%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxrunat="server"Width="120px"ID="edit_Abbreviation"Text='<%#DataBinder.Eval(Container.DataItem,"Abbreviation")%>'></asp:TextBox></EditItemTemplate></asp:TemplateColumn><asp:EditCommandColumnEditText="修改"CancelText="取消"UpdateText="更新"Visible="false"ItemStyle-Wrap="false"></asp:EditCommandColumn><asp:ButtonColumnText="删除"Visible="false"CommandName="delete"></asp:ButtonColumn></Columns></asp:datagrid>

解决方案

解决方案二:
后台代码如下:DataGrid中默认的排列是abc11.11.2修改删除55.55.8修改删除由于abc等列比较多,横向太长,不利于观察怎么才能改成.修改修改删除删除a15b1.15.5c1.25.8请教啊~~我的原代码如下:请直接修改,或者贴出更好的东西。DATAGIRD原代码如下:[code=C#]<asp:datagridid="DataGrid1"Runat="server"DataKeyField="OrganizationID"EnableViewState="true"OnItemCreated="Deleteconfirm"PageSize="5"OnDeleteCommand="MyDataGrid_Delete"OnUpdateCommand="MyDataGrid_Update"OnCancelCommand="MyDataGrid_Cancel"OnEditCommand="MyDataGrid_Edit"AutoGenerateColumns="False"><ItemStyleBackColor="white"ForeColor="#330099"/><HeaderStyleFont-Bold="true"ForeColor="#330099"BackColor="#FFFFCC"/><Columns><asp:BoundColumnDataField="OrganizationID"SortExpression="OrganizationID"ReadOnly="True"HeaderText="编号"></asp:BoundColumn><asp:BoundColumnDataField="CategoryID"SortExpression="OrganizationID"ReadOnly="True"HeaderText="类别编号"></asp:BoundColumn><asp:TemplateColumnHeaderText="名称"SortExpression="OrganizationID"><ItemTemplate><asp:Labelrunat="server"ID="label_OrganizationName"Text='<%#DataBinder.Eval(Container.DataItem,"OrganizationName")%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxrunat="server"Width="120px"ID="edit_OrganizationName"Text='<%#DataBinder.Eval(Container.DataItem,"OrganizationName")%>'></asp:TextBox></EditItemTemplate></asp:TemplateColumn><asp:TemplateColumnHeaderText="缩写"SortExpression="OrganizationID"><ItemTemplate><asp:Labelrunat="server"ID="Label_Abbreviation"Text='<%#DataBinder.Eval(Container.DataItem,"Abbreviation")%>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBoxrunat="server"Width="120px"ID="edit_Abbreviation"Text='<%#DataBinder.Eval(Container.DataItem,"Abbreviation")%>'></asp:TextBox></EditItemTemplate></asp:TemplateColumn><asp:EditCommandColumnEditText="修改"CancelText="取消"UpdateText="更新"Visible="false"ItemStyle-Wrap="false"></asp:EditCommandColumn><asp:ButtonColumnText="删除"Visible="false"CommandName="delete"></asp:ButtonColumn></Columns></asp:datagrid>

[/code]
解决方案三:
关注.
解决方案四:
将绑定的dataTable自己写函数转置
解决方案五:
privatevoidPage_Load(objectsender,System.EventArgse){//装载删除按钮的客户端事件//DeleteInfo.Attributes["onclick"]="returnconfirm('您确认要删除该条记录吗?')";//在此处放置用户代码以初始化页面if((!Page.IsPostBack))//首次登陆本页面{BindData();//绑定OrganizationInfo表到Dategrid}//if(Session["Username"].ToString()!=string.Empty)//{DataGrid1.Columns[4].Visible=true;DataGrid1.Columns[5].Visible=true;//删除按钮可见//}}//修改按钮publicvoidMyDataGrid_Edit(objectsender,DataGridCommandEventArgse){DataGrid1.EditItemIndex=(int)e.Item.ItemIndex;stringconnstring="DataSource=localhost;InitialCatalog=FACILITYALARM;uid=facilityalarm;pwd=123456;";SqlConnectionconn=newSqlConnection(connstring);stringquery="SELECT*FROMOrganizationInfoWHERECategoryID='0'";SqlDataAdapterDa=newSqlDataAdapter(query,conn);DataSetDs=newDataSet();Da.Fill(Ds,"OrganizationInfo");//当存在记录,绑定相关控件if(Ds.Tables["OrganizationInfo"].Rows.Count!=0){DataGrid1.Visible=true;DataGrid1.DataSource=Ds.Tables["OrganizationInfo"].DefaultView;}DataGrid1.DataBind();}//取消按钮publicvoidMyDataGrid_Cancel(objectsender,DataGridCommandEventArgse){DataGrid1.EditItemIndex=-1;//-1为退出编辑状态BindData();}//更新按钮publicvoidMyDataGrid_Update(objectsender,DataGridCommandEventArgse){if(Page.IsValid){//stringCategoryIDID=DataGrid1.datakeys[DataGrid1.selectedindex].tostring();//05语法//stringCategoryIDID=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//不成功,但是采用'"+XXX+"'方式引入就成功了,说明只要是动态的,就必须采用+方式//DataGrid1.Items[0].Cells[0].Text.ToString();//该语句可以返回当前datagrid第一行第一列的内容stringconnstring="DataSource=localhost;InitialCatalog=FACILITYALARM;uid=facilityalarm;pwd=123456;";SqlConnectionConn=newSqlConnection(connstring);SqlCommandsqlcmd=newSqlCommand();sqlcmd.Connection=Conn;Conn.Open();try{///////////////////////////////////////////接受用户的修改。sqlcmd.CommandText="UPDATEOrganizationInfoSETOrganizationName='"+((TextBox)e.Item.FindControl("edit_OrganizationName")).Text+"',Abbreviation='"+((TextBox)e.Item.FindControl("edit_Abbreviation")).Text+"'whereOrganizationID='"+DataGrid1.DataKeys[e.Item.ItemIndex].ToString()+"'";sqlcmd.CommandType=CommandType.Text;sqlcmd.ExecuteNonQuery();Response.Write("<script>alert('修改记录成功!');</script>");DataGrid1.EditItemIndex=-1;//这句加在BindData()之前BindData();}catch(SqlExceptionex){Response.Write("<script>alert('"+ex.Message+"');</script>");}finally{Conn.Close();}}}//删除确认publicvoidDeleteconfirm(objectsender,System.Web.UI.WebControls.DataGridItemEventArgse){LinkButtontemp;if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){temp=(LinkButton)e.Item.Cells[5].Controls[0];temp.Attributes["onclick"]="javascript:returnconfirm('确定要删除此记录吗?');";}}//开始确认publicvoidMyDataGrid_Delete(objectsender,DataGridCommandEventArgse){//CategoryID='"+DataGrid1.DataKeys[e.Item.ItemIndex].ToString()+"'//从datagrid中取出选定的当前主键的值//欲删除油田群级别的记录,需要检测FieldID及FacilityID,按逻辑只需检测FieldID即可。FieldID等同于OrganizationID//拥有FieldID的表如下FacilityDeviceInfoPtztcsbYlztcsbstringconnstring="DataSource=localhost;InitialCatalog=FACILITYALARM;uid=facilityalarm;pwd=123456;";SqlConnectionConn=newSqlConnection(connstring);SqlCommandsqlcmd=newSqlCommand();sqlcmd.Connection=Conn;inti_tablecount=0;//记录查询出的表格数量,当不为0时,表示检测的所有表中至少有一个表包含了categoryID字段,将不执行删除操作Conn.Open();try{///////////////////////////////////////////检测FacilityDeviceInfo表中的是否含有FieldID字段与欲删除的OrganizitionID的记录相同值。//////////////////////////////////////////由于本编辑界面只涉及OrganizitionID==0的情况,所以增加只增加为0的,那么删除也只能删除为0的,此条件必须约束。sqlcmd.CommandText="SELECTFieldIDFROMFacilityDeviceInfowhereFieldID='"+DataGrid1.DataKeys[(int)e.Item.ItemIndex]+"'";//FacilityDeviceInfo表中的FieldID对应OrganizitionInfo中的OrganizitionID(datagrid主键)sqlcmd.CommandType=CommandType.Text;if(sqlcmd.ExecuteScalar()!=null){Response.Write("<script>alert('请先删除此油田群下面的设施设备信息汇总表中的记录,再进行此操作');</script>");i_tablecount++;gotoLabel;}///////////////////////////////////////////检测DeviceAccidentInfo表中的是否含有CategoryID字段的记录sqlcmd.CommandText="SELECTFieldIDFROMPtztcsbwhereFieldID='"+DataGrid1.DataKeys[(int)e.Item.ItemIndex]+"'";sqlcmd.CommandType=CommandType.Text;if(sqlcmd.ExecuteScalar()!=null){Response.Write("<script>alert('请先删除此油田群下面的平台整体参数表中记录,再进行此操作');</script>");i_tablecount++;gotoLabel;}///////////////////////////////////////////检测DeviceDetailInfo表中的是否含有CategoryID字段的记录sqlcmd.CommandText="SELECTFieldIDFROMYlztcsbwhereFieldID='"+DataGrid1.DataKeys[(int)e.Item.ItemIndex]+"'";sqlcmd.CommandType=CommandType.Text;if(sqlcmd.ExecuteScalar()!=null){Response.Write("<script>alert('请先删除此油田群下面的油轮整体参数表中记录,再进行此操作');</script>");i_tablecount++;gotoLabel;}///////////////////////////////////////////检测FacilityDeviceInfo表中的是否含有CategoryID字段的记录Label:if(i_tablecount==0)//删除操作成功{stringquery="DELETEFROMOrganizationInfoWHEREOrganizationID='"+DataGrid1.DataKeys[(int)e.Item.ItemIndex]+"'";SqlCommandComm=newSqlCommand(query,Conn);Comm.ExecuteNonQuery();Response.Write("<script>alert('删除记录成功!');</script>");BindData();}}catch(SqlExceptionex){Response.Write("<script>alert('"+ex.Message+"');</script>");}finally{Conn.Close();}}privatevoidBindData(){//stringCategoryID=Request.QueryString["CategoryID"];//根据CategoryID的值来判断本类型stringconnstring="DataSource=localhost;InitialCatalog=FACILITYALARM;uid=facilityalarm;pwd=123456;";SqlConnectionconn=newSqlConnection(connstring);stringquery="SELECT*FROMOrganizationInfowhereParentID='1'";SqlDataAdapterDa=newSqlDataAdapter(query,conn);DataSetDs=newDataSet();Da.Fill(Ds,"OrganizationInfo");//DataSetDs=newDataSet("CategoryCode");//Da.Fill(Ds);采用这种方式也可以//dataGrid1.DataSource=ds.Tables[0].DefaultView;//Response.Write("<script>alert('绑定数据成功');</script>");//当存在记录,绑定相关控件this.DataGrid1.DataSource=Ds;this.DataGrid1.DataBind();//ShowData(Ds);}

解决方案六:
没人回答啊..........等待中
解决方案七:
.........继续等
解决方案八:
换种思路,用DataList,怎么样?
解决方案九:
你是做winform?webform的话可以换成datalist
解决方案十:
能不能现在数据库中转化成这样在来绑定啊?这应该是一个行列转化的问题啊
解决方案十一:
嗯,楼上说的是,用行列转化将数据源转化为那种形式。。。
解决方案十二:
没遇到过,帮顶。
解决方案十三:
不是吧,那企不是要横着翻页!那就自己做控件吧!思想很简单,就和做asp的东西一样从DataTable挨个把值取出来,横向摆放!修改修改删除删除a15b1.15.5c1.25.8<table><tr><td>a</td><td>要增加的a列的值</td>...</tr><tr><td>b</td><td>要增加的b列的值</td>...</tr><tr><td>c</td><td>要增加的c列的值</td>...</tr>如果你要做过ASP程序,实现这个应该很容易!
解决方案十四:
我用datalist尝试过,数据是可以显示出来,但是如何添加编辑和删除按钮呢
解决方案十五:
楼主可以用DataList来实现在前台<asp:DataListID="DataList1"...runat="server"><ItemTemplate>这里列个表格,多行一列,来显示数据库中一个记录 </ItemTemplate></asp:DataList>然后在.cs文件中将DataList1.RepeatColumns=总记录数 就可以了注:如果要分页的话,就将DataList1.RepeatColumns=页面大小 就可以了
解决方案:
aspx页:<ItemTemplate></ItemTemplate>中加<asp:ButtonID="deleteItem"Text="删除"runat="server"OnCommand="deleteItem_Click"CommandArgument='<%#Eval("id")%>/>.cs页:protectedvoiddeleteArticleItem_Click(objectsender,CommandEventArgse){stringid=e.CommandArgument.ToString();  //sql删除语句}
解决方案:
上面.cs函数名打错了改成:protectedvoiddeleteItem_Click(objectsender,CommandEventArgse){stringid=e.CommandArgument.ToString();  //sql删除语句}
解决方案:
我的意思是如何实现修改修改删除删除a15b1.15.5c1.25.8选中第一列的修改按钮时,读取到该条数据记录例如:datagrid可以这样读取主键whereCategoryID='"+DataGrid1.DataKeys[e.Item.ItemIndex].ToString()+"'而在datalist中呢,只有读取到主键,我按“更新”按钮时才可以执行update........语句
解决方案:
关注中,想过这个问题,没实现过
解决方案:
楼主没理解我的意思DataGrid1.DataKeys[e.Item.ItemIndex].ToString()其实是在DataGrid1中将CategoryID绑定进去了,可以取到CategoryID按钮中手动将CategoryID绑定到CommandArgument事件参数中<asp:ButtonID="deleteItem"Text="删除"runat="server"OnCommand="deleteItem_Click"CommandArgument='<%#Eval("CategoryID")%>/>最后在.cs的deleteItem_Click函数中就可以取到whereCategoryID='"+e.CommandArgument.ToString()+"'即可操作了原理其实一样,当然也可以用它自带e事件写
解决方案:
我以前做过和你一样的问题,可以用存储过程,也可以用第三方控件WEBGRID。还有什么问题的话可以加我QQ200580231咱们来讨论讨论。。。。
解决方案:
可以考虑从数据源修改数据

时间: 2024-11-18 03:36:35

如何将DataGrid纵向排列【困扰1星期了】的相关文章

angularjs环境中不解析easyui的datagrid

问题描述 angularjs环境中不解析easyui的datagrid 各位论坛大牛你们好,,小弟在工作中遇到问题,angularjs环境下为何不能解析easyui的datagrid,困扰我一天了 解决方案 http://my.oschina.net/buwei/blog/188021 看看这篇文章

关于datagrid中的字符串转换

datagrid|转换|字符串 在datagrid中,数据绑定时,怎么把数据库中的字符串按照自己设定的方式进行输出是个比较麻烦的事这个问题困扰了我很久,也试着使用了很多方法:1.<pre><%#Container.DateItem("字段名")</pre>浏览器可以根据<pre>的属性自动把回车符进行换行,但没有回车的段落就成了长长长长的一大行了,n久也没有解决这个矛盾,因为在<pre>中浏览器强制把字符串同行输出,而没有自动换行.

拖放 DataGrid 列--来自MSDN

datagrid 摘要:了解如何利用基本的 GDI 功能,从而通过 DataGrid 控件获得可视化效果.通过跨越托管边界进行调用,可以利用本机 GDI 功能来执行屏幕捕获,并最终获得拖放体验. 下载 ColumnDragDataGrid.msi 文件. 本页内容 简介 入门 ScreenImage 类 DraggedDataGridColumn 类 ColumnDragDataGrid 类 列跟踪 重写 DataGrid 的 OnPaint 方法 小结 简介几个月以前,当我初到 Microso

ASP.NET Datagrid创建自定义列

asp.net|datagrid|创建 简介 不得不承认,为 Microsoft? ASP.NET 编写 Datagrid 代码包括大量的重复工作.尽管我深受该控件的困扰,但我还是不断寻找简化这类任务的捷径.谁都不愿意做重复的工作,对不对?为了摆脱这种烦人的工作,我们要将多个项目中的重复代码封装到一个可重复使用的程序包中.这才是面向对象的编程工作所要解决的问题,使用 Datagrid 也不例外.对于 Datagrid 控件来说,要实现该目的,需要将常用的代码放到一个内置的列类型中(将在第一个示例

如何在DATAGRID中显附件

问题描述 我的001.xls文件上传到服务器某个目录后,而且我在数据库中有一个表来记录它!字段为:fjid,fjname,fjurl;路径:d:aspnetjwlorders01.xls请问我该如何让它在DATAGRID上显示啊,就是我在点击其中的链接列后,就能打开001.xls文件!!!我搜了好久,网上都没有这方面的实例!!望各位大侠提供点帮助????? 解决方案 解决方案二:把链接做成一个ButtonField,点击事件在后台代码判断,然后读取文件输出.解决方案三:Response.Tran

datagrid json-easyui datagrid 不显示json数据

问题描述 easyui datagrid 不显示json数据 过程描述:页面 A输入参数,进入controller进行逻辑处理并生成json数据,然后通过 MVC返回json数据,并对页面A相关easyui datagrid表格进行数据展示. 问题:easyui datagrid不现实数据,且页面不报错,调试能看到json数据. 页面代码: <button id="myb" class="easyui-linkbutton c6" type="but

急~~~~~关于datagrid currentpage出错....

问题描述 页面上有多个datagrid,其中有一个dg的分页是没有问题的,而别的DG点击下一页的时候会报如下错:"无效的CurrentPageIndex值.它必须大于等于0且小于PageCount",但是我取出currentpageIndex和Pagecount的值却是没有超出的,代码如下:privatevoidgrd_salesqty_PageIndexChanged(objectsource,System.Web.UI.WebControls.DataGridPageChanged

jQuery easyui datagrid动态查询数据实例讲解_jquery

该插件组小巧使用方便,以下是一个从前台提交查询条件,从MSSQL返回json数据的一个事例 HTML前端代码 复制代码 代码如下: <?php include_once("auth.php"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel=&qu

坏账泥潭与信息披露乱像困扰华夏银行

华夏银行受历史遗留问题的困扰,多年来业绩表现不尽如人意,但通过持续数年的超常规减值计提和不良贷款核销,历史问题贷款已基本消化:公司近年来在风险控制方面的效果则有待观察.但公司在信息披露方面所暴露的种种弊端,则不可不察 ■ 陈绍霞 净息差最低.成本收入比最高.2009年前3季度总资产报酬率和净资产收益率位列已上市银行末席,当所有这些糟糕的财务指标与同一家银行华夏银行(600015,SH)相关联时,其二级市场的股价表现远远落后于银行板块也就在情理之中了. 事实上,自2006年以来,华夏银行持续大幅计