How to use Eval() with a column name that contains a dot(.)?

前端 未结 4 852
长情又很酷
长情又很酷 2021-01-05 05:20

In my SQL Server table there is a column slno. (yes, it contains a dot) that is working fine in SQL Server. However, <%#Eval(\"slno.\")%> is

4条回答
  •  花落未央
    2021-01-05 05:46

    use

    <%# ((DataRowView)Container.DataItem)["slno."] %>
    

    Alternatively use

    <%# DataBinder.Eval (Container.DataItem, "slno.") %>
    

    For MSDN reference see http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

    EDIT - Another option:

    <%# DataBinder.GetPropertyValue(Container.DataItem, "slno.") %>
    

    EDIT 2 - as per comments:

    AFAIK Eval handles the string as an expression which it evaluates using some rules - these rules have special handling for the dot...

    GetPropertyValue OTOH does not apply those rules (which means it is NOT a full replacement for Eval AFAIK) thus having the ability to handle cases where the dot handling of Eval leads to problems (like in this case).

提交回复
热议问题