【问题标题】:String Format Specifier in C# for with fixed length of strings in GridviewC# 中的字符串格式说明符,用于 Gridview 中固定长度的字符串
【发布时间】:2014-11-12 11:09:27
【问题描述】:

我试图在绑定时在网格视图项模板中显示固定长度的字符串(比如 10 位字符串),但我找不到字符串本身的任何格式说明符。

我可以获得 (Numbers{0:N}, Floats & Decimal (D), Currency{0:C}, , Date{1,8:yyyy}, Percentage {0,3:P1},Temperature: {0:F}, Exponential, Hexadecimal ... 但不是对于字符串本身)

我尝试了链接:Click here,但对我不起作用。

我的网格视图有一个模板字段(项目模板)

<asp:TemplateField HeaderText="Notes">
     <ItemTemplate>

     <asp:Label ID="Label_Note" runat="server" Text='<%# String.Format("{0}", Eval("Defect_Note").ToString()) %>'  ></asp:Label>   

    </ItemTemplate>
 </asp:TemplateField>

我需要在下面的网格中显示 'Notes Column',最多 10 位数字。如果 exeeds 它不应该显示(可以在工具提示上显示)如果小于 10 它可以显示其所有内容。

我想在 C# 中显示像 Printf(" %8s" ,&amp;note) 这样的 Notes 列。(在 Binding 单行中)

【问题讨论】:

  • 可能空间正在被修剪。
  • 如果您想显示前 10 个字符而不是需要修剪或取前 10 个字符,string.format 不会为您截断它。
  • 你说你需要固定长度的字符串:如果字符串是四个字符,是否需要填充到 10 个字符?从您使用它的上下文来看,我认为不是但想澄清一下。
  • 您可以将Defect_Note_Display 属性添加到您的视图模型:public string Defect_Note_Display { get { return Defect_Note.Substring(0,10); } } 或类似

标签: c# string format-specifiers


【解决方案1】:

不要忘记检查空值。

notes.Substring(0, Math.Min(notes.Length, 10))

【讨论】:

    【解决方案2】:

    下面的代码帮助你

    <asp:Label ID="lblDescription" runat="server"
                    Text='<%# Limit(Eval("Description"),10) %>' 
                    Tooltip='<%# Eval("Description") %>'>
          </asp:Label>
    

    参考此链接:

    How to limit label string length in GridView with Read More link?

    【讨论】:

    • 在编译服务此请求所需的资源时出错。请查看以下特定错误详细信息并适当修改您的源代码。编译器错误消息:CS0103:当前上下文中不存在名称“限制”
    • @Rahul:我认为 Limit 是 Senthilkumar 忘记包含在他的答案中的自定义方法。我怀疑它的内容与 hazimdikenli 的答案相似。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    相关资源
    最近更新 更多