C# 如果列数据超过一个设置的记录,如何在列数据上设置省略号
如何在数据列上设置省略号 我的GridView中有以下边界字段:C# 如果列数据超过一个设置的记录,如何在列数据上设置省略号,c#,asp.net,gridview,C#,Asp.net,Gridview,如何在数据列上设置省略号 我的GridView中有以下边界字段: <asp:BoundField DataField="Provider" HeaderText="Provider" ItemStyle-VerticalAlign="Top" ItemStyle-CssClass="hideText" ItemStyle-Width="100" /> 如何修改代码,使“提供程序”列只显示前3条记录,然后显示。。。如果有更多的记录返回 我使用了以下CSS,但它不适合我: .hideT
<asp:BoundField DataField="Provider" HeaderText="Provider" ItemStyle-VerticalAlign="Top" ItemStyle-CssClass="hideText" ItemStyle-Width="100" />
如何修改代码,使“提供程序”列只显示前3条记录,然后显示。。。如果有更多的记录返回
我使用了以下CSS,但它不适合我:
.hideText {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
更新至:
<asp:TemplateField>
<HeaderTemplate>
<asp:Label runat="server" ID="lblProvider" Text="Provider" />
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblPro" Text='<%#Eval("Provider")%>' ToolTip='<%#Eval("Provider")%>' CssClass="hideText" />
</ItemTemplate>
</asp:TemplateField>
.hideText {
width:50px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
TD扩展得很长,HTML源代码显示:
您似乎正在修改它,但无论如何都无法将其存储回数据库,因此我只能像这样处理它,除非他们需要一个选项来查看整个数据 我在这个编辑器中编写了所有这些c代码,所以可能会有一些小问题,让我们称之为psuedo代码吧
string provider = item["Provider"].ToString().Replace("#", "\n").TrimStart(';');
string[] providerListing = provider.Split(new[]{";"}, StringSplitOptions.RemoveEmptyEntries));
if(providerListing.Length > 3)
{
//Make an array of the first 3 providers
string[] firstProviders = new string[3];
Array.Copy(providerListing, firstProviders, 3);
//Reconcatenate with ; and add ellipsis
provider = String.Join(";",firstProviders)+"...";
}
如果他们确实需要查看整个数据,我会添加另一个名为FullProviders的列或类似的列来查询。您似乎正在修改此列,无法将其存储回数据库,因此我只会这样处理,除非他们需要一个选项来查看整个数据 我在这个编辑器中编写了所有这些c代码,所以可能会有一些小问题,让我们称之为psuedo代码吧
string provider = item["Provider"].ToString().Replace("#", "\n").TrimStart(';');
string[] providerListing = provider.Split(new[]{";"}, StringSplitOptions.RemoveEmptyEntries));
if(providerListing.Length > 3)
{
//Make an array of the first 3 providers
string[] firstProviders = new string[3];
Array.Copy(providerListing, firstProviders, 3);
//Reconcatenate with ; and add ellipsis
provider = String.Join(";",firstProviders)+"...";
}
如果他们确实需要查看整个数据,我会添加另一个名为FullProviders的列或类似的内容来查询;仅当以下属性为真时才有效:
必须指定元素的宽度。
元素必须设置溢出:隐藏和空白:nowrap。改变你的css如下
.hideText {
width:120px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
这是工作票
更新:
这是完整的TemplateField定义。在TemplateField中定义一个div,并用css属性修饰省略号
<asp:TemplateField HeaderText="Provider Name">
<ItemTemplate>
<div style="width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
<asp:Label ID="lblEllipsis" runat="server" Text='<%#Eval("Provider") %>' ToolTip='<%#Eval("Provider") %>'></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
下面是我在本地gridview中尝试此操作时的样子
文本溢出:省略号;仅当以下属性为真时才有效:
必须指定元素的宽度。
元素必须设置溢出:隐藏和空白:nowrap。改变你的css如下
.hideText {
width:120px;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
这是工作票
更新:
这是完整的TemplateField定义。在TemplateField中定义一个div,并用css属性修饰省略号
<asp:TemplateField HeaderText="Provider Name">
<ItemTemplate>
<div style="width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
<asp:Label ID="lblEllipsis" runat="server" Text='<%#Eval("Provider") %>' ToolTip='<%#Eval("Provider") %>'></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
下面是我在本地gridview中尝试此操作时的样子
他们可以在datagrid中修改该值吗?他们可以在datagrid中修改该值吗?假设我想让用户将鼠标悬停在上面,并在警报或其他内容中显示完整列表吗?在这里,您必须隐藏FullProviders列,但在必要时您可以处理显示该列。谢谢。所以我知道你说这是psuedo代码,但是没有找到providerListing.Count:/它是长度,而不是Count。还有一件事。。。Array.CopyproviderListing,firstProviders,3;正在给我一个错误:/因此,假设我想让用户悬停在上方,并在警报或其他内容中显示完整列表?这就是您必须隐藏FullProviders列的地方,但您可以在必要时处理显示。谢谢。所以我知道你说这是psuedo代码,但是没有找到providerListing.Count:/它是长度,而不是Count。还有一件事。。。Array.CopyproviderListing,firstProviders,3;给了我一个错误,这很有效。因为它是一个数据字段,我如何允许用户将鼠标悬停在上面并显示带有全文的警报?>我将使用带有标签的templatecolumn,而不是BoundColumn。标签的属性将是Text=,我现在正在测试它。非常感谢。在这种情况下,我可以使用JQuery/CSS定制工具提示:+1-顺便说一下,我发现这个答案很有用。为什么数据不能显示在标记中?任何显示完整提供程序列表的解决方案都必须在HTML中的某个地方显示该信息,否则您将不得不使事情变得相当复杂。@SearchForKnowledge抱歉,我出去吃午饭了。试试我更新的代码,如果仍然不适合你,请告诉我。太棒了。因为它是一个数据字段,我如何允许用户将鼠标悬停在上面并显示带有全文的警报?>我将使用带有标签的templatecolumn,而不是BoundColumn。标签的属性将是Text=,我现在正在测试它。非常感谢。在这种情况下,我可以使用JQuery/CSS定制工具提示:+1-顺便说一下,我发现这个答案很有用。为什么数据不能显示在标记中?任何显示完整提供程序列表的解决方案都必须在HTML中的某个地方显示该信息,否则您将不得不使事情变得相当复杂。@SearchForKnowledge抱歉,我出去吃午饭了。尝试我的更新代码,如果仍然不适合您,请告诉我。