2012-03-12 47 views
0

我有这样一个简单的网格视图:如何在gridview中使用jquery.timeago插件和boundfield?

<asp:GridView ID="gv_userActivities" runat="server" AutoGenerateColumns="False"> 
      <Columns> 
      <asp:BoundField DataField="activity" HeaderText="Activity name" /> 
       <asp:BoundField DataField="activity_date" HeaderText="Activity date" /> 
      </Columns> 
    </asp:GridView> 

现在我想用jquery.timeago plugin我绑定列Activity date。如何使用这样的脚本访问绑定字段:

<script type="text/javascript"> 
     jQuery(document).ready(function() { 
      jQuery('gv_userActivities.timeago').timeago(); 
     }); 
</script> 

回答

1

需要,因为TIMEAGO插件希望你的title属性应用到相应的DOM元素和日期必须是ISO 8601格式化为使用一个模板字段:

<asp:GridView ID="gv_userActivities" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundField DataField="activity" HeaderText="Activity name" /> 
     <asp:TemplateField HeaderText="Activity date"> 
      <ItemTemplate> 
       <span class="timeago" title="<%# string.Format("{0:o}", Eval("activity_date")) %>"> 
        <%# Eval("activity_date") %> 
       </span> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

这显然假定数据源中的activity_date属性是DateTime实例。如果它不是ToString("o")格式将不起作用,您将不得不在timeago插件可以理解的title属性中手动构建ISO 8601日期。

然后:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery('.timeago').timeago(); 
    }); 
</script> 
+0

,谢谢,我不知道为什么这不是工作。 我的gridview绑定在下拉列表'selectedindexchanged' – 2012-03-12 13:53:58

+1

@just_name,你为'​​'分配了一个'title'属性,它包含ISO 8601编码日期,这是timeago插件期望你做的事情吗? – 2012-03-12 13:56:54

+0

我的日期时间显示为'12/03/2012 12:29:13م' – 2012-03-12 13:57:05

相关问题