【问题标题】:Formatting columns in the DevExpress ASPxGridView?格式化 DevExpress ASPxGridView 中的列?
【发布时间】:2011-10-20 14:37:17
【问题描述】:

有谁知道我如何格式化 DevExpress ASPxGridView 中的列。我拥有的是每天从 xml 文件生成的 xml 文件。我想做的是为特定值格式化列,例如,带有测量值的列,如果未填充,我想添加尾随零,即 1.2 到 1.200。我只遇到过在 ASPX 页面中完成的示例,并在代码中构建了我的列。请提供最简单的解决方案或财产,谢谢。

【问题讨论】:

    标签: asp.net formatting devexpress aspxgridview


    【解决方案1】:

    在您的 .aspx 页面中,您可以将列格式化为美元金额,小数点后为 0

      <dx:GridViewDataTextColumn FieldName="YourFieldName" VisibleIndex="1" Name="Displayame">
          <PropertiesTextEdit DisplayFormatString="${0}" />
      </dx:GridViewDataTextColumn>
    

    在代码后面将 CellEditorInitialize 绑定到自定义事件处理程序,例如:

     ASPxGridViewData.CellEditorInitialize+=new DevExpress.Web.ASPxGridView.ASPxGridViewEditorEventHandler(ASPxGridViewData_CellEditorInitialize);
    protected void ASPxGridViewData_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e){
    if (e.Column.FieldName == "YourFieldName") {
        e.Editor.Value = string.Format("${0}", e.Value);
    }}
    

    【讨论】:

    • 嗨,Emmanuel,我已经尝试过这种方法,即后面代码中的方法,但由于某种原因它没有命中此代码。有什么我需要设置为真或什么的。
    【解决方案2】:

    无需在活动中这样做。这当然不完整,但你明白了:

    void doStuff(){
       theGridView.DataSource = getDataSource();
       theGridView.DataBind();
    
       foreach(GridViewColumn gvc in theGridView.Columns)
       {
          String strSomeParamter = "";
           if(gvc.Name.Contains("$")
              strSomeParameter = "currency";
          (gvc as GridViewDataTextColumn).PropertiesTextEdit.DisplayFormatString = getTextFormatStringBasedOnSomeParameter(strSomeParamter);
       }
    }
    
    String getTextFormatStringBasedOnSomeParameter(String someParam){
      switch(someParam)
      {
         default:
              return "";
         case "currency":
              return "{0:c2}";
         case "percent":
              return "{0:p2}";
      }
    }
    

    【讨论】:

      【解决方案3】:

      在后面的代码中你可以使用CustomColumnDisplayText事件:

      protected void Grid_CustomColumnDisplayTextEvent(ASPxGridViewColumnDisplayTextEventArgs e)
      {
          if ("ColumnName".Equals(e.Column.FieldName))
          {
              e.DisplayText = someFormatFunction(e.Value);
          }
      }
      

      方法文档: http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewASPxGridView_CustomColumnDisplayTexttopic

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多