如何在gridview中使用jquery.timeago插件和boundfield?

时间:2012-03-12 13:46:18

标签: c# javascript jquery asp.net timeago

我有一个像这样的简单网格视图:

   <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>

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

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

1 个答案:

答案 0 :(得分: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>