2011-09-13 63 views
1

我想要用Datalist中,我可以導航到特定的URL鏈接項,當我點擊它,它去到C#讓Datalist中的項目在asp.net

我的網址AREN」做新的URL迴應聯t常量

怎麼樣?

+2

那麼你嘗試過什麼和在哪裏,你有具體的問題?你至少有Google搜索嗎? http://msdn.microsoft.com/en-us/library/h59db326.aspx#Y3642(第一擊) –

+0

發佈您的代碼。它幫助其他人回答您的查詢 –

+0

我試過超鏈接,但導航網址是常量,我無法生成事件處理程序點擊 – kartal

回答

1

您應該編輯DataList的項目模板並放入一個ASP HyperLink,並使用數據綁定將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屬性對照。

0
<%@ 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(); 
     } 
    } 
    } 

}