日期:2014-05-18  浏览次数:20593 次

关于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>