在vs2008中gridveiw绑定了sqldatasource,
sql文"select classID,studendID,studenNM,type from a,b ...."gridview 一共两列,学生名和type,学生名 这一列是个hyperlinkfield,
问题
1 点击学生名跳到另外一个页面
<asp:HyperLinkField DataTextField="studenNM" HeaderText="学生名"
DataNavigateUrlFormatString="abc.aspx?classID={0}&studendID={0}"
DataNavigateUrlFields="classID,studendID" />
请问 怎么传递 studendID,和classID这两个参数,我这样写应该是不对的。
2 虽然点学生名 跳到另外一个页面,不过有这样的要求。
学生名是 "XIAOXIAO" 的链接页面 是 efg.aspx,别的学生 都是abc.aspx
请问怎么实现。
sql文"select classID,studendID,studenNM,type from a,b ...."gridview 一共两列,学生名和type,学生名 这一列是个hyperlinkfield,
问题
1 点击学生名跳到另外一个页面
<asp:HyperLinkField DataTextField="studenNM" HeaderText="学生名"
DataNavigateUrlFormatString="abc.aspx?classID={0}&studendID={0}"
DataNavigateUrlFields="classID,studendID" />
请问 怎么传递 studendID,和classID这两个参数,我这样写应该是不对的。
2 虽然点学生名 跳到另外一个页面,不过有这样的要求。
学生名是 "XIAOXIAO" 的链接页面 是 efg.aspx,别的学生 都是abc.aspx
请问怎么实现。
谢谢
CS ROWCOMMAND写 生成对象,FIND()找控件.再加IF()去你想让去的地方URL
不知道,对不.嘿嘿
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1"
Width="256px">
<Columns>
<asp:TemplateField HeaderText="name" SortExpression="name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"name").ToString()=="a1"?DataBinder.Eval(Container.DataItem,"name","aa.aspx?id={0}"):DataBinder.Eval(Container.DataItem,"name","ab.aspx?id={0}").ToString()%>'
Text='<%# Eval("name") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/aa.mdb"
SelectCommand="SELECT [name], [sex] FROM [aa]"></asp:AccessDataSource>
</form>
</body>
如果可以的话可以这么实现:
在grisview中编辑模板,在模板中添加一个hyperlinkfield,然后编辑hyperlinkfield
navigateUrl为Eval("studentID", "abc.aspx?studentID={0}")
Text为Eval("要绑定的内容"),结束模板编辑
然后在跳转页面(abc.aspx)中写连接数据库代码
类似:
protected void Page_Load(object sender, EventArgs e)
{
string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["newsConnectionString"].ToString();
string strSql = "select .... from [学生表] where studentID="+Request["studentID"];
SqlConnection conn = new SqlConnection(strcon); SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DetailsView1.DataSource = dr;//这里用的DetailsView控件
DetailsView1.DataBind();
conn.Close();
}基本上就是这样,你试试吧!
就是 gridview绑定了sqldatasource
有一个学生名列hyperlinkfield,点链接的时候,如果学生名 是 xiaoxiao 连接到 a.aspx,如果不是连接到 b.aspx
请把 答案给的详细一点好吗。
<Columns>
<asp:TemplateField >
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("studenNM").ToString().ToUpper() == "XIAOXIAO" ? "a.aspx" : "b.aspx" + "?classID=" + Eval("classID") + "&studendID=" + Eval("studendID") %>' Text='<%# Eval("studenNM") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
{
string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["newsConnectionString"].ToString();
string strSql = "select .... from [学生表] where studentID="+Request["studentID"];
SqlConnection conn = new SqlConnection(strcon); SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DetailsView1.DataSource = dr;//这里用的DetailsView控件
DetailsView1.DataBind();
conn.Close();
} 基本上就是这样,你试试吧!