62,046
社区成员
发帖
与我相关
我的任务
分享
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3"
AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Id">
<ItemTemplate>
<%# Eval("Id") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%# Eval("Name") %>
<asp:CheckBox ID="sId" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="链接地址">
<ItemTemplate>
<a href="<%# Eval("URl") %>"><%# Eval("Name") %></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>
using System;
using System.Collections.Generic;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<TestClass> list3 = CreateDataSource("DropDownList1的数据源");
DropDownList1.DataSource = list3;
DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "Id";
DropDownList1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
List<TestClass> list1 = CreateDataSource("GridView1的数据源一");
List<TestClass> list2 = CreateDataSource("GridView1的数据源二");
List<TestClass> list3 = CreateDataSource("GridView1的数据源三");
switch (DropDownList1.SelectedValue)
{
case "1": GridView1.DataSource = list1; break;
case "2": GridView1.DataSource = list2; break;
default: GridView1.DataSource = list3; break;
}
GridView1.DataBind();
}
private List<TestClass> CreateDataSource(string dataSourceName)
{
List<TestClass> list = new List<TestClass>();
TestClass model;
for (int i = 1; i < 10; i++)
{
model = new TestClass
{
Id = i,
Name = dataSourceName + "中的数据" + i,
Url = "http://localhost/" + dataSourceName+"的Url"+i
};
list.Add(model);
}
return list;
}
public class TestClass
{
public int Id { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}
}
}
<%@ Page language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HyperLinkField Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:gridview id="OrdersGridView" runat="server">
<columns>
<asp:boundfield datafield="OrderID"
headertext="OrderID"/>
<asp:boundfield datafield="OrderDate"
headertext="Order Date"
dataformatstring="{0:d}" />
<asp:hyperlinkfield text="Details..."
navigateurl="~\details.aspx"
headertext="Order Details"
target="_blank" />
</columns>
</asp:gridview>
</form>
</body>
</html>
后端:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = ...//(你的数据库查询)
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
[/quote] 但是我要的效果是,GridView的值跟随DropDownList选择的值而改变的,所以我GridView并没有绑定任何数据,数据的绑定都是在DropDownList中的,那请问下,现在还能让GridView中的值变成超链接么[/quote]
可以。GridView数据源是在Page_Load中绑定,还是在DropDownList的SelectedIndexChanged中绑定,跟GridView中的数据表现形式没有关系的。GridView数据可以通过自定义模板列来灵活展现
<asp:TemplateField HeaderText="卡号状态" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="45px">
<ItemTemplate>
<a id="Al" href='<%#Eval("Url")'>链接</a>
</ItemTemplate>
<ItemStyle Width="45px" HorizontalAlign="Left" />
</asp:TemplateField>
搞定[quote=引用 8 楼 alone857567508 的回复:] [quote=引用 3 楼 anglecloudy 的回复:]这种吗? 这个问题的前提与问题毫无关系呀?<asp:hyperlinkfield datatextfield="xxx" datanavigateurlfields="ID" datanavigateurlformatstring="http://....}" />
<%@ Page language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HyperLinkField Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:gridview id="OrdersGridView" runat="server">
<columns>
<asp:boundfield datafield="OrderID"
headertext="OrderID"/>
<asp:boundfield datafield="OrderDate"
headertext="Order Date"
dataformatstring="{0:d}" />
<asp:hyperlinkfield text="Details..."
navigateurl="~\details.aspx"
headertext="Order Details"
target="_blank" />
</columns>
</asp:gridview>
</form>
</body>
</html>
后端:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = ...//(你的数据库查询)
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
[/quote] 但是我要的效果是,GridView的值跟随DropDownList选择的值而改变的,所以我GridView并没有绑定任何数据,数据的绑定都是在DropDownList中的,那请问下,现在还能让GridView中的值变成超链接么噢噢,魔兽老玩家啊。。。关键是我的GridView并没有绑定任何数据,而是跟随DropDownList选择的值而变化的,请问下,那现在还怎么让GridView中的数据变成超链接,数据有很多,肯定不能直接加的 GridView的数据并不一定是要从数据库里来的。。。。。直接内存数据也是可以的
[quote=引用 8 楼 alone857567508 的回复:] [quote=引用 3 楼 anglecloudy 的回复:]这种吗? 这个问题的前提与问题毫无关系呀?<asp:hyperlinkfield datatextfield="xxx" datanavigateurlfields="ID" datanavigateurlformatstring="http://....}" />
[quote=引用 3 楼 anglecloudy 的回复:]这种吗? 这个问题的前提与问题毫无关系呀?<asp:hyperlinkfield datatextfield="xxx" datanavigateurlfields="ID" datanavigateurlformatstring="http://....}" />
<%@ Page language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HyperLinkField Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:gridview id="OrdersGridView" runat="server">
<columns>
<asp:boundfield datafield="OrderID"
headertext="OrderID"/>
<asp:boundfield datafield="OrderDate"
headertext="Order Date"
dataformatstring="{0:d}" />
<asp:hyperlinkfield text="Details..."
navigateurl="~\details.aspx"
headertext="Order Details"
target="_blank" />
</columns>
</asp:gridview>
</form>
</body>
</html>
后端:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = ...//(你的数据库查询)
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
[quote=引用 3 楼 anglecloudy 的回复:]这种吗? 这个问题的前提与问题毫无关系呀?<asp:hyperlinkfield datatextfield="xxx" datanavigateurlfields="ID" datanavigateurlformatstring="http://....}" />
GridView的数据并不一定是要从数据库里来的。。。。。直接内存数据也是可以的
这种吗? 这个问题的前提与问题毫无关系呀?<asp:hyperlinkfield datatextfield="xxx" datanavigateurlfields="ID" datanavigateurlformatstring="http://....}" />
http://www.cnblogs.com/zjz008/archive/2009/09/22/1571531.html