乌大维 2014-08-17 07:57 采纳率: 0%
浏览 796

为了显示最新动态,如何给不同的字段赋予不同的链接?

要显示某用户的最新动态,包括发的帖子、发布的视频、关注的课程等。
前台代码是:

          <asp:DataList ID="dlDongtai" runat="server" RepeatColumns="1">
                <ItemTemplate>
                    <table>
                        <tr>
                            <td>
                                <%#Eval("xingwei") %>
                            </td>
                        </tr>
                        <tr>
                            <td><%#Eval("mingcheng") %></td>
                        </tr>
                    </table>
                </ItemTemplate>
            </asp:DataList>

后台代码是:

    protected void Page_Load(object sender, EventArgs e)
    {
        bindUserDongtai();
    }
    protected void bindUserDongtai()
    {
        string sqlSel = "select * from TimeLineDevelopment where youxiang= '" + Session["youxiang"] + "'";
        dlDongtai.DataSource = operateData.getRows(sqlSel);
        dlDongtai.DataBind();

    }

数据库中TimeLineDevelopment表当前设计如下:
dongtaiID youxiang xingwei xingweiduixiang xwLujing biaoti biaotiID
1 guest 赞同了帖子 帖子 /wenjian/LctsList/list.aspx?kechengID= 这个微课很有见地,上知天文下知地理.1014

我的当前思路
datalist确实能够显示行为和名称的,改成下面的话,也能够实现跳转。
<%#Eval("id") %>"><%#Eval("mingcheng") %>
只是每次插入数据表要给他一个跳转的链接,感觉比较麻烦。


各位大神有其他的思路吗?
还有您们的最新动态板块是怎么做的?因为要记录和显示该用户在不同地方(如发帖,关注课程,发布视频)的动作,我觉得是比较麻烦。

小生万分感谢!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 11:51
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要为不同的字段分配不同的链接,可以使用JavaScript来处理。以下是一个简单的示例,展示了如何将文本转换为HTML链接,并在页面加载时应用这些链接到列表项。

    首先,在服务器端设置好用户信息后,生成HTML链接并将其添加到列表中。

    然后,创建一个JavaScript函数,用于在页面加载时更新列表中的链接。

    最后,在Page_Load事件中调用这个函数,以确保所有的链接都已加载。

    以下是完整的示例代码:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <!-- 引入所需的CSS文件 -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    
        <!-- 引入所需的JavaScript文件 -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    </head>
    <body>
    
    <div class="container">
        <div id="content">
            <h2>您的最新动态:</h2>
            <table id="dynamicTable" class="display" cellspacing="0" width="100%">
                <thead>
                    <tr>
                        <th>操作</th>
                        <th>名称</th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
    
    <script>
    $(document).ready(function () {
        // 获取用户信息
        var user = {username: 'your_username', userid: 1};
        $.getJSON('/getDynamicInfo', {user: user}, function (data) {
            // 将数据绑定到表格中
            data.forEach(function (item) {
                $('#dynamicTable').append('<tr><td><a href="/dynamicDetail/' + item.id + '">' + item.name + '</a></td><td>' + item.username + '</td></tr>');
            });
        });
    
        // 当页面加载完成后,更新所有链接
        $(window).load(function () {
            $('#dynamicTable tr td a').each(function () {
                var link = $(this).attr('href');
                if (link && window.location.href.indexOf(link) !== -1) {
                    $(this).attr('target', '_blank'); // 设置目标标签为_blank
                }
            });
        });
    });
    </script>
    
    </body>
    </html>
    

    在这个例子中:

    • 使用jQuery的$.getJSON()方法从你的服务器获取用户的信息。
    • data数组中遍历每个条目,为每条条目创建一个新的行,并将条目的nameusername属性值插入到对应的单元格中。
    • 当页面加载完成后,通过$(window).load()监听器检查页面是否已经加载完成。
    • 如果页面已经加载完成,对于包含href属性的单元格,它会找到其链接,并设置目标标签为_blank,以便在新窗口中打开链接。
    评论

报告相同问题?