ASP.NET 中GridView 控件的DataFormatString属性的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET 中GridView 控件的DataFormatString属性的用法相关的知识,希望对你有一定的参考价值。
如何使用GridView 控件的DataFormatString 这个属性把较长的文本字段截短。比如要显示的字段有100多个字符我只想让它显示出25个。
看看这些,对你有帮助 参考: http://www.cnblogs.com/lyamlfnet/archive/2007/05/29/763683.html有个时间要在gridview中显示,但是保持着数据库中的是标准时间,很长,而且只需要显示日期,就想要格式化字符串,可是设置了DataFormatString就是不起作用,后来一查,原来要设置"行为"中HtmlEncode = false DataFormatString="0:格式字符串"在DataFormatString 中的 0 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;数字、货币格式:在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为 0:N1,则输出为「1.5」。其常用的数值格式如下表所示:格式字符串 输入 结果"0:C" 12345.6789 $12,345.68"0:C" -12345.6789 ($12,345.68)"0:D" 12345 12345"0:D8" 12345 00012345"0:E" 12345.6789 1234568E+004"0:E10" 12345.6789 1.2345678900E+004"0:F" 12345.6789 12345.68"0:F0" 12345.6789 12346"0:G" 12345.6789 12345.6789"0:G7" 123456789 1.234568E8"0:N" 12345.6789 12,345.68"0:N4" 123456789 123,456,789.0000"Total: 0:C" 12345.6789 Total: $12345.68常用的日期时间格式:格式 说明 输出格式d 精简日期格式 MM/dd/yyyyD 详细日期格式 dddd, MMMM dd, yyyyf 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mmF完整日期时间格式(long date + long time)dddd, MMMM dd, yyyy HH:mm:ssg 一般格式 (short date + short time) MM/dd/yyyy HH:mmG 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ssm,M 月日格式 MMMM dds 适中日期时间格式 yyyy-MM-dd HH:mm:sst 精简时间格式 HH:mmT 详细时间格式 HH:mm:ss最后写一下中国常用的格式0:yyyy-MM-dd 参考技术A selset * case when len(name)> 15 then substring([name],0,15) +'..' else name as name from table希望上面这个SQL语句对你有帮助```这是在SQL里对字符串进行截取```我也遇到你这个问题```我就是在数据库的SQL语句上进行操作的```
向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作
【中文标题】向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作【英文标题】:Gridview custom paging inside wizard control doesn't work correct in asp.net 【发布时间】:2012-02-03 09:00:14 【问题描述】:我有一个可以选择客人的页面。
此页面包含一个更新面板,更新面板内有一个向导控件,向导控件中有一个gridview(面板->更新面板->向导控件->gridview)
现在分页效果不好,我在网上搜索了答案,但没有找到正确的答案。我使用自定义分页。
当我想更改页码(到第二页或最后一页)时,它可以正常工作。但是当我想选择一行或转到另一个页面时,gridview 无法正常工作。当我在第二页或最后一页(其他页面不起作用)上选择 A 行时,选定的客人(项目)始终是第一页之一。当我想更改到另一个页面(从第二页或最后一页开始)时,它不起作用并停留在所选页面上。
有没有办法解决这个问题?
部分代码:
<asp:Panel ID="PnlRe" Style="display: none; ... >
<asp:UpdatePanel ID="UpdtPnlDetail" runat="server" UpdateMode="Conditional">
<ContentTemplate>
...
<asp:Wizard ID="wzd" runat="server" ... >
...
<asp:WizardStep ID="WizardStep3" runat="server" Title="Naam">
...
<asp:Gridview ID="Gridview1" runat="server" AutoGenerateColumns="False"
DataKeyNames="GastID,Versie" DataSourceID="odsGasten" EmptyDataText="...."
OnRowCommand="Gridview1_RowCommand" OnPageIndexChanging="Gridview1_PageIndexChanging"
OnPageSizeChanging="Gridview1_PageSizeChanging" OnSearching="Gridview1_Searching"
OnSorting="Gridview1_Sorting" OnRowDataBound="Gridview1_RowDataBound"
CausesValidation="False" meta:resourcekey="..." PagerType="Custom"
ShowFilter="True" ShowInsertRecord="True" ShowPageSizer="True" UseSubmitBehaviour="False">
<Columns>
<asp:TemplateField ShowHeader="False" meta:resourcekey="...">
<ItemTemplate>
<asp:ImageButton runat="server" CommandName="Select" CausesValidation="False" SkinID="uprowbutton"
ToolTip="..." ID="ImgBtnSelect" meta:resourcekey="...">
</asp:ImageButton>
</ItemTemplate>
</asp:TemplateField>
... Boundfields ...
</Columns>
</asp:Gridview>
...
</asp:WizardStep>
...
</asp:Wizard>
</ContentTemplate>
</asp:UpdatePanel>
protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e)
this.odsGasten.FilterExpression = searchText;
this.Gridview1.DataBind();
this.UpdtPnlDetail.Update();
【问题讨论】:
您正在使用有条件的 UpdatePanel,但我没有看到任何触发器。您是否忽略了它们或者您没有注册触发器?如果您需要将 UpdatePanel 保留为条件,我认为您需要将 PageIndexChanging 事件注册为触发器。 【参考方案1】:有一个棘手的方法来实现这一点,你必须操纵你的数据源。 例如,如果您使用的是数据表,则必须选择 dt 的前十个元素并将其绑定到网格,当单击下一个按钮时,获取 dt 的下十个元素并将其绑定到 gridview。这将使您的任务变得轻松,并为您的页面获得更高的性能。
【讨论】:
【参考方案2】:我可以看到 this.GridView1.DataBind() 是在 GridView1_PageIndexChanging 中调用的,但是 currentPageIndex 存储在哪里并使用您要导航到的页面索引进行更新,以及在此过程中何时发生?
【讨论】:
【参考方案3】:在我看来,您的视图状态存在问题。
您需要确保在 Init 和 Load 之间设置了网格的源,无论是来自视图状态还是来自新的绑定。
【讨论】:
以上是关于ASP.NET 中GridView 控件的DataFormatString属性的用法的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net 中处理 Gridview 控件中的文本框?
ASP.NET 中GridView 控件的DataFormatString属性的用法
向导控件中的 Gridview 自定义分页在 asp.net 中无法正常工作