如何在GridView中编辑一行时设置文本框的宽度?
问题描述:
我有一个可以编辑的GridView。我的问题是,当我点击编辑时,文本框太小(File Name
列)。它的大小不足以显示其内容,并且不如列的其余部分那样宽。如何在GridView中编辑一行时设置文本框的宽度?
如何让文本框更宽?
这里的ASP代码:这背后
<asp:GridView ID="FileGridView" runat="server" AllowPaging="True" OnPageIndexChanging="FileGridView_PageIndexChanging"
CellPadding="1" CssClass="GridView" GridLines="Horizontal"
Width="100%" AutoGenerateColumns="false"
AutoGenerateEditButton="true"
OnRowCancelingEdit="GridView_RowCancelingEdit" OnRowEditing="GridView_RowEditing" OnRowUpdating="GridView_RowUpdating"
>
<Columns>
<asp:BoundField DataField="Name" HeaderText="File Name" />
<asp:BoundField DataField="Length" HeaderText="Size" ReadOnly="true" />
<asp:BoundField DataField="LastWriteTime" HeaderText="Last Modified" ReadOnly="true" />
</Columns>
<RowStyle CssClass="GridViewRow" />
<EditRowStyle ForeColor="Black" CssClass="GridViewEditRow" />
<SelectedRowStyle Font-Bold="True" CssClass="GridViewSelectedRow" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle CssClass="GridViewHeader" ForeColor="White" />
<AlternatingRowStyle CssClass="GridViewAlternatingRow" />
</asp:GridView>
有C#代码更新数据,而且工作得很好。我希望这个解决方案在ASP中,但如果解决方案需要一些C#代码,那对我来说没问题。
答
这应该工作:
<asp:BoundField DataField="Name" HeaderText="File Name" />
<controlstyle Width="200">
</controlstyle>
</asp:BoundField>
答
您可以将CSS类这样的控制:
<asp:BoundField DataField="Name" HeaderText="File Name"
ControlStyle-CssClass="wide" />
然后设置你的width
在样式表:
input.wide { width: 100px; }
答
您可以通过编辑提交选项将文本框/下拉框转换为模板文件。然后去编辑模板,定义框的宽度/高度。
答
您必须设置ItemStyle-Width
为列和ControlStyle-Width
对塔内控制:
<asp:BoundField DataField="Name" HeaderText="File Name" />
<ItemStyle Width="200px" />
<ControlStyle Width="100%" />
</asp:BoundField>