我正在以这种方式截断GridView中的列Description
文本:
<asp:GridView ID="GridView1" CssClass="truncated" runat="server" AllowPaging="true" BackColor="White"
BorderColor="#CCCCCC" BorderWidth="2px" CellPadding="2" CellSpacing="5" ForeColor="#000066"
GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<RowStyle BackColor="#F7F7F7" />
<AlternatingRowStyle BackColor="#E7E7FF" />
<FooterStyle BackColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066"
HorizontalAlign="Center" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
<Columns>
<asp:CommandField ShowSelectButton="true" ControlStyle-ForeColor="Red" SelectText="Select" HeaderText="Select" />
<asp:TemplateField HeaderStyle-ForeColor="White" HeaderText="Description">
<ItemTemplate>
<div style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100px">
<asp:Label ID="review" runat="server" Text='<%# Bind("Description") %>' Tooltip='<%#Bind("Description")%>'></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
现在问题是Book
tabel有10列,如果我从数据库中选择所有列,如下所示:
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Book", con);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
列Description
在GridView中显示两次。第一个Description
显示带有工具提示的截断文本,第二个Description
显示全文。
我知道我是Bind
- 在GridView中并在后面的代码中选择SELECT
命令,但我只需要在浏览器的GridView中使用工具提示。
答案 0 :(得分:3)
您必须向Gridview添加属性:
Autogeneratecolumns=false
这将解决您的问题。
以下是财产:
将如下:
<asp:GridView ID="GridView1" AutoGenerateColumns="false" CssClass="truncated" runat="server" AllowPaging="true" BackColor="White"
BorderColor="#CCCCCC" BorderWidth="2px" CellPadding="2" CellSpacing="5" ForeColor="#000066"
GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
答案 1 :(得分:0)
我的问题是我是以编程方式在代码中设置列,所以我绑定了已设置的列。解决方案是在设置列之前检查列是否存在:
if (gvViewStudents.Columns.Count <= 0)
这解决了我的问题,列显示了两次。