在asp.net网格视图中,我添加了一个TemplateColumn,我需要将其宽度设置为0,即使我在HTML代码或代码中设置它,当它在浏览器中显示时它有一个宽度。怎么解决这个问题?
HTML
<asp:TemplateField Visible="False" ControlStyle-Width="0">
<HeaderStyle BorderWidth="0" Width="0"></HeaderStyle>
<ItemStyle BorderWidth="0" Width="0"></ItemStyle>
<FooterStyle BorderWidth="0" Width="0"></FooterStyle>
<ItemTemplate>
<itemstyle width="0" />
<asp:PlaceHolder ID="ExpandedContent" Visible="false" runat="server"></td> </tr>
<tr>
<td class="label" colspan="2" align="left">
Test</asp:PlaceHolder>
</td> </tr>
</ItemTemplate>
<FooterStyle BorderWidth="0px" Width="0px" />
</asp:TemplateField>
输出HTML
输出
答案 0 :(得分:2)
将列中数据的字体大小设置为0,希望这有效..谢谢
<asp:BoundField DataField="CommID" Visible="true" ItemStyle-ForeColor="White"
HeaderText="" ItemStyle-Width="0px" ControlStyle-Width="0px" ItemStyle-Font-Size="0" >
答案 1 :(得分:0)
我的建议是,您使列不可见(设置Visible="false"
)并将您在该列上绑定的属性定义为网格上的DataKeyNames之一;这样,您就可以随时检索它。
例如:
<asp:gridview DataKeyNames="PropertyYouNeed,ID,SomethingElse" ... />
然后当您回发时,您可以从GridView.DataKeys property
获取数据答案 2 :(得分:0)
我发现TemplateColumn
HeaderText
会自动设置为四个空格(自动生成),将HeaderText
设置为一个空格来解决问题。
答案 3 :(得分:0)
以下解决方案为我工作 - 1.在css下面创建
<style>
.hidden { display: none;}
</style>
修改您的TemplateField,如下所示
&LT; asp:TemplateField HeaderText =“”&gt;
&LT; HeaderStyle CssClass =“hidden”Width =“0px”/&gt;
&LT; ItemStyle CssClass =“hidden”Width =“0px”/&gt;
&LT;的ItemTemplate&GT;
&LT; asp:HiddenField ID =“IDVal”runat =“server”Value ='&lt;%#Eval(“UserID”)%&gt;' /&GT;
&LT; / ItemTemplate中&GT;
&LT; / ASP:的TemplateField&GT;
希望这会有所帮助。感谢
答案 4 :(得分:0)
我尝试使用ItemStyle-Width="0px" ControlStyle-Width="0px"
,但显示的是小列。然后我尝试使用Visible="false"
然后该列不可见,但问题是当我们尝试在代码中获取单元格文本时,它显示“”。
我的解决方案:
设置GridView1.Columns(2).Visible = False
如果您想从该列读取数据,那么
GridView1.Columns(2).Visible = True
If GridView1.Rows(1).Cells(2).Text ="abc" Then
'do somthing......
GridView1.Columns(2).Visible = False