首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于Gridview的2个有关问题

2011-12-15 
关于Gridview的2个问题?我通过代码将SQL查询语句绑定到Grideview中!并增加了编辑,删除等列。程序运行後都可

关于Gridview的2个问题?
我通过代码将SQL查询语句绑定到Grideview   中!

并增加了   编辑,删除   等列。程序运行後都可以正常显示,但是当我点编辑後,GridView   就出现所选行的修改文本框,问题就来了   ,出现修改文本框後,整个GridView     的单元格高度就被撑大了。狠难看的!

大家说应该怎么办啊?

还有一个问题就是,当我点编辑时,能不能在所选行的   字段中有选择的出现修改文本框,因为我并不是想让每个字段都可以被修改。

我感觉控制GridView   外观   不走形对新手来说挺麻烦的,哪位高手能不能给个完整的列子,观摩观摩啊   ?

谢谢大家了。

[解决办法]
1.避免不让每个字段都显示编辑状态的方法: <asp:BoundField ReadOnly= "true " ...
当该列处于编辑状态下,也不会改变状态了。

2.因为GRIDVIEW自动创建编辑文本的功能我是在不敢恭维,所以在下不才,不会弄。但我有一个自己的解决方案,如下:
<asp:TemplateField>
<ItemTemplate>
<%# Eval( 'Nno ') %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat= "server " Text= ' <%# Eval( 'Nno ') %> ' id= "t1 "> </asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
这样,你可以在TEXTBOX里加任何属性,如width= "15px "等等。
[解决办法]
textbox和GridView 之间还有很多空白的间距--那这样你还得设置模版列的宽度,或者干脆置空(删除其width属性值)--这个是要在gridview的属性弹出框更改
[解决办法]
还有一个问题就是,当我点编辑时,能不能在所选行的 字段中有选择的出现修改文本框,因为我并不是想让每个字段都可以被修改。

这个简单! 就是你在gridview中把字段的属性设置为“readonly”就可以了。
[解决办法]
1.
可是我前台代码中没有绑定字段啊!字段是动态代码绑定的啊!
-----------------------
自动给你生成的都是傻瓜式的,当然自己添加绑定列,设置 AutoGenerateColumns = false

2。
我新拖放一个GridView控件,怎么才算是使用模板列了啊?
-----------
<asp:gridview
<columns>
<asp:boundfield datatextfield= <!- 这是普通绑定列 -->
<asp:itemtemplate> <!- 这是模板绑定列 -->
<itemtemplate>

3。
GridView 的 Edit Update 本身就是个鸡肋

[解决办法]
<asp:GridView ID= "gvMstPost " runat= "server " CellPadding= "2 " Width= "1060px " AutoGenerateColumns= "False " DataKeyNames= "post_code " ShowHeader= "False " AllowSorting= "True " OnRowDataBound= "gvMstPost_RowDataBound " OnRowDeleted= "gvMstPost_RowDeleted " OnRowDeleting= "gvMstPost_RowDeleting " OnSelectedIndexChanged= "gvMstPost_SelectedIndexChanged " SkinId= "gridviewSkin ">
<Columns>
<asp:TemplateField ShowHeader= "False ">
<ItemStyle Width= "60px " HorizontalAlign= "Center " />
<ItemTemplate>
<asp:LinkButton ID= "lbtnEdit " runat= "server " CausesValidation= "False " CommandName= "Select "
Text= "修正 "> </asp:LinkButton>
<asp:LinkButton ID= "lbtnDelete " runat= "server " CausesValidation= "False " CommandName= "Delete "
Text= "削除 "> </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField= "post_code " HeaderText= "post_code " ReadOnly= "True " SortExpression= "post_code " >
<ItemStyle Width= "120px " HorizontalAlign= "Left "/>
</asp:BoundField>


<asp:TemplateField HeaderText= "post_name " SortExpression= "post_name ">
<ItemStyle Width= "180px " HorizontalAlign= "Left " />
<ItemTemplate>
<asp:Label ID= "lblPost_name " runat= "server " Text= ' <%# Eval( "post_name ") %> '> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "valid_flag " SortExpression= "valid_flag ">
<ItemStyle Width= "110px " HorizontalAlign= "Center " />
<ItemTemplate>
<asp:Label ID= "lblValid_flag " runat= "server " Text= ' <%# (bool)Eval( "valid_flag ")? "有効 ": "無効 " %> '> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField= "update_date " HeaderText= "update_date " ReadOnly= "True " DataFormatString= "{0:yyyy/MM/dd} " HtmlEncode= "False "
SortExpression= "update_date " >
<ItemStyle Width= "100px " HorizontalAlign= "Center " />
</asp:BoundField>
<asp:TemplateField HeaderText= "comment " SortExpression= "comment ">
<ItemStyle HorizontalAlign= "Left "/>
<ItemTemplate>
<asp:Label ID= "lblComment " runat= "server " Text= ' <%# Eval( "comment ") %> '> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>

</asp:GridView>
这段代码里有你要找的东西,关于单元格被撑宽,可以在GridView的CssCall中添加你的CSS控制
单元格宽度,让它和文本筐高度匹配,或者用CSS将文本筐高度固定
[解决办法]
模板列 里面加上编辑 以及显示列 给你个例子
<asp:TemplateField >
<EditItemTemplate>
<asp:TextBox ID= "txtDownLoadDesc " runat= "server " Text= ' <%# Bind > </asp:TextBox Visible= "false "/> </EditItemTemplate>
<ItemStyle HorizontalAlign= "Center " BorderColor= "#BECDE2 " BorderStyle= "Solid " BorderWidth= "1px " Wrap= "True " />
<ItemTemplate>
<%-- <asp:Label ID= "aaaaaa " runat= "server " Text= ' <%# Bind( "FolderName ") %> '> </asp:Label> --%>
<asp:Label ID= "lblDownLoadDesc " runat= "server " Text= ' <%# Bind( "DownLoadDesc ")%> ' Width = "90% " > </asp:Label>
</ItemTemplate>
</asp:TemplateField>

热点排行