想设定表格某列的时间格式为yy-mm-dd,我的GridView是动态绑定的,也就是用以下方式获取数据源
 GridView1.DataSource = pTable;
 GridView1.DataBind();
这种方式导致以下两种方法不可用:主要是由于htmlencode属性默认设置为true,已防止XSS攻击,安全起见而用的,所以,可以有以下两种方法解决 1、 <asp :GridView ID="GridView1" runat="server">
<columns>
<asp :BoundField DataField="CreationDate" 
DataFormatString="{0:M-dd-yyyy}" 
HtmlEncode="false"
HeaderText="CreationDate" />
</columns>
</asp> 将htmlencode设置为false即可 另外的解决方法为,使用模版列 <asp :GridView ID="GridView3" runat="server" >
<columns>
<asp :TemplateField HeaderText="CreationDate" >
<edititemtemplate>
<asp :Label ID="Label1" runat="server" 
Text='<%# Eval("CreationDate", "{0:M-dd-yyyy}") %>'>
</asp>
</edititemtemplate>
<itemtemplate>
<asp :Label ID="Label1" runat="server" 
Text=’<%# Bind("CreationDate", "{0:M-dd-yyyy}") %>'>
</asp>
</itemtemplate>
</asp>
</columns>
</asp> 
不知道还有没有其他方式可以实现该功能?还是一定要用数据源方式绑定?

解决方案 »

  1.   

    绑定前 pTable 里相应的记录先修改成需要的格式也行
      

  2.   

    或者直接这样
    <asp:BoundField DataField="字段" DataFormatString="{0:yyyy-MM-dd}" HeaderText="Title"
                        HtmlEncode="False">
                        <HeaderStyle ForeColor="Gray" Width="120px"  />
                    </asp:BoundField>
      

  3.   

    数据库记录取出来的时候已经为你需要显示的格式 程序就不用进一步处理了
    根据你数据库的数据类型来 用合适的sql语句
      

  4.   

    可以在绑定前对时间格式为yy-mm-dd的格式进行处理在进行绑定也OK~