【问题标题】:Make Datalist items link-able in asp.net在 asp.net 中使 Datalist 项可链接
【发布时间】:2011-09-13 12:05:06
【问题描述】:

我想用可链接的项目制作 Datalist,当我点击它时,我可以导航到特定的 url,它转到 c# 来响应新的 URL

我的网址不是固定的

怎么做?

【问题讨论】:

  • 那么您尝试过什么,具体问题在哪里?你至少用谷歌搜索过吗? msdn.microsoft.com/en-us/library/h59db326.aspx#Y3642(第一击)
  • 发布您的代码。它可以帮助其他人回答您的问题
  • 我尝试了超链接,但导航 URL 是不变的,我无法为点击生成事件处理程序
  • @salamonti:我发布了一个链接,其中NavigateUrl 是通过DataBinder.Eval 设置的

标签: c# asp.net datalist


【解决方案1】:

你应该编辑 DataList 的项模板并在里面放置一个 ASP 超链接,然后使用数据绑定将 NavigateUrl 分配给这样的控件。

类似这样的:

<asp:DataList ID="listSearchResults" Border="1" BorderColor="Black"
    RepeatDirect="Horizontal" RepeatColumns="5" runat="server" >
    <ItemTemplate>

     <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Name") %>' />

    </ItemTemplate>
</asp:DataList> 

另一种方法是使用 ASP:LinkBut​​ton 并将 CommandName 和 CommandArgument 属性分配给该控件。

【讨论】:

    【解决方案2】:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"   Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org   /TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title>Datalist with linkable items</title>
      </head>
      <body>
    <form id="form1" runat="server">
    <div align="center">
        <asp:DataList ID="dlLinkable" runat="server" 
            onitemdatabound="dlLinkable_ItemDataBound" >
            <ItemTemplate>
                <table style="width: 300px;" cellpadding="0" cellspacing="1">
                    <tr>
                        <td style="width:200px">
                            <asp:Label ID="lblName" runat="server" Text="Label"></asp:Label>
                        </td>
                        <td>
                            <a id="linkA" runat="server">link</a>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:DataList>
    </div>
    </form>
    </body>
    </html>
    
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    public partial class _Default : System.Web.UI.Page
    {
    DataTable dt;
    protected void Page_Load(object sender, EventArgs e)
    {
        populateDataList();
    }
    private void populateDataList()
    {
        dt = new DataTable();
        //Create 3 columns for this DataTable
        DataColumn col1 = new DataColumn("ID");
        DataColumn col2 = new DataColumn("Name");
        DataColumn col3 = new DataColumn("Url");
        //Add All These Columns into DataTable table
        dt.Columns.Add(col1);
        dt.Columns.Add(col2);
        dt.Columns.Add(col3);
        // Create a Row in the DataTable table
        DataRow row = dt.NewRow();
        row[col1] = 1;
        row[col2] = "google";
        row[col3] = "http://www.google.com";
        dt.Rows.Add(row);
        //////////////////////
        row = dt.NewRow();
        row[col1] = 2;
        row[col2] = "yahoo";
        row[col3] = "http://www.yahoo.com";
        dt.Rows.Add(row);
        //////////////////////////////////
        dlLinkable.DataSource = dt;
        dlLinkable.DataBind();
    }
      protected void dlLinkable_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType ==   ListItemType.Item)
         {
            Label lblName = (Label)e.Item.FindControl("lblName");
            if (lblName != null)
            {
                lblName.Text = dt.Rows[e.Item.ItemIndex]["Name"].ToString();
            }
            HtmlAnchor linkA = (HtmlAnchor)e.Item.FindControl("linkA");
            if (linkA != null)
            {
                linkA.HRef = dt.Rows[e.Item.ItemIndex]["Url"].ToString();
            }
        }
      }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多