如何绑定GridView中的某些列

YaYa 2011-05-21 12:06:40
如:
A页面中有GridView表
Q W E R T
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
想点击某条数据进行详细查看时,跳转到B页面,并用label控件把E列的值进行绑定显示出来,这个label控件的语句应该如何

写呢?
...全文
288 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-05-23
  • 打赏
  • 举报
回复
超链接
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="newsID,Us_ID"
DataSourceID="jianweinews" ShowHeader="False" Width="189px" GridLines="None" EmptyDataText="还没有数据" >
<Columns>
<asp:TemplateField ItemStyle-CssClass="hawk110" >
<ItemTemplate >
<asp:HyperLink ID=hyperlink runat="server" NavigateUrl=<%# "~/index/infopublishnews.aspx?newsID="+Eval("newsID")%>>传送</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<SelectedRowStyle BorderStyle="None" />
</asp:GridView>


如果Eval("newsID")不会绑定的话

就直接赋予给GridView 的一个数据源 数据源中包含newsID列。

第二种 自己设置NavigateUrl


<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" 
onrowdatabound="GridView3_RowDataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"><%#Eval("Name") %></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

后台
protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e)
{
string[] url = { "1.aspx", "2.aspx", "3.aspx" };
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hl = e.Row.FindControl("HyperLink1") as HyperLink;
hl.NavigateUrl = url[e.Row.RowIndex];//这里超链接只是例子,具体设置为什么在自己修改
}
}
moduofanchen 2011-05-23
  • 打赏
  • 举报
回复

<script type="text/javascript" language="javascript">
function info(id) {
var url = "OrganizationView.aspx?orgID=" + id;
window.showModalDialog(url, '', 'dialogHeight: 400px;dialogWidth:750px;Top:50px;edge: Raised;center: Yes;help: Yes;');
}

function Update(id) {
var url = "OrganizationUpdate.aspx?orgID=" + id;
window.showModalDialog(url, '', 'dialogHeight: 400px;dialogWidth: 750px;Top:50px;edge: Raised;center: Yes;help: Yes;');
}

function Add() {
var url = "OrganizationAdd.aspx";
window.showModalDialog(url, '', 'dialogHeight: 400px;dialogWidth: 790px;Top:50px;edge: Raised;center: Yes;help: Yes;');
}

function AddAdmin() {
var url = "OrganizationAdminAdd.aspx"
window.showModalDialog(url, '', 'dialogHeight: 400px;dialogWidth: 790px;Top:50px;edge: Raised;center: Yes;help: Yes;');
}

function Save() {

}
</script>

<asp:GridView ID="gridStandard" runat="server" AutoGenerateColumns="False" Width="100%" BorderWidth="1"
OnRowDataBound="gridStandard_RowDataBound" AllowPaging="True"
CellPadding="0" CellSpacing="0" CssClass="mainTable"
AllowSorting="True" onpageindexchanging="gridStandard_PageIndexChanging"
onrowcommand="gridStandard_RowCommand" EmptyDataText="没有符合查询条件的相关数据" >
<Columns>
<asp:TemplateField HeaderText="序号" HeaderStyle-HorizontalAlign="center">
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True" />
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="单位名" HeaderStyle-HorizontalAlign="center">
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<%#AspNetHelp.TextHelp.StrSub(Eval("Name"), 30)%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="地址" HeaderStyle-HorizontalAlign="center">
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True" />
<ItemStyle HorizontalAlign="Left" />
<ItemTemplate>
<%#AspNetHelp.TextHelp.StrSub(Eval("Address"), 40)%>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:BoundField DataField="Name" HeaderText="单位名">
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True" HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Address" HeaderText="地址">
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True" HorizontalAlign="Left" />
</asp:BoundField>--%>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<input id="btninfo" type="button" value="详细" class="grayBtn" onclick='info(<%#Eval("id")%>)' />
<asp:Button ID="btnUpdate" runat="server" Text="编辑" OnClientClick='<%#"Update(" + Eval("id") + ")"%>' CssClass="grayBtn" />
<asp:Button ID="btnDelete" runat="server" Text="删除" CommandArgument='<%#Eval("id")%>' CssClass="grayBtn"
CommandName="Deletes" OnClientClick="if (confirm('删除后无法恢复,您确认删除么?') == false) return false;" />
</ItemTemplate>
<HeaderStyle BackColor="#CFEAEB" Font-Bold="True"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>

</asp:GridView>


通过调用js实现你想要的
jyw555785 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chaoge180 的回复:]
C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType==DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick","window.open('B.aspx?E='"+e.Row.Cells[2].Text+"')" //这里是行click事件 你是想用GridView列里面的 Button事件,就不能这么写
}
}
[/Quote]

前台页面GridView这么写
<asp:TemplateField>
<ItemStyle Width="40px"/>
<ItemTemplate>
<img src="../App_Themes/SkinFile/Images/del.gif" onclick="window.open('b.aspx?e='"+this.id"')" id='<%#Eval("id") %>'/>
//<%#Eval("id") %>绑定E列的值,自己绑定你自己写的代码,
//这里可以改为Button
</ItemTemplate>
</asp:TemplateField>

B页面lable.text = request.querystring['e'].tostring();

自己再写下 语法错了自己改下
zhizouxiao 2011-05-22
  • 打赏
  • 举报
回复
<asp:HyperLink NavigateUrl='<%#"~/test.aspx?ID="+Eval("ID") %>' ID="lnk_test" runat="server" />

然后根据ID在第二个页面查询所需要的数据……
不要在页面间传递太多数据……
YaYa 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chaoge180 的回复:]
C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType==DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onm……
[/Quote]

是这样吗?我的问题是以下那样的喔:

如果我想在A页面中点击GridView表中某条数据的button按钮,然后跳转到B页面,并把这条数据的某些数据列值用Label控件显示输出(不需在GridView表中显示),又该如何做呢?即:

A页面GridView表(点击第二条数据):
Q W E R T
1 2 3 4 5 button
1 2 3 4 5 button
1 2 3 4 5 button

B页面(label显示第二条数据E的值):
3

chaoge180 2011-05-22
  • 打赏
  • 举报
回复
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType==DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='Silver'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
e.Row.Attributes.Add("onclick", "selecteRow(this)");
if (tring!=null)
{
e.Row.Attributes.Add("ondblclick", "selectedRow(this)");
}

}
}
YaYa 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 along_861 的回复:]
采用模板页是最好的方法
[/Quote]

这个跟模板页有关系吗?
along_861 2011-05-22
  • 打赏
  • 举报
回复
采用模板页是最好的方法
YaYa 2011-05-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jyw555785 的回复:]
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//你想要的结果
}
}
[/Quote]

如果我想在A页面中点击GridView表中某条数据的button按钮,然后跳转到B页面,并把这条数据的某些数据列值用Label控件显示输出(不需在GridView表中显示),又该如何做呢?即:

A页面GridView表(点击第二条数据):
Q W E R T
1 2 3 4 5 button
1 2 3 4 5 button
1 2 3 4 5 button

B页面:
E:3

electrio 2011-05-21
  • 打赏
  • 举报
回复
用id传值。找到A页面中有GridView表的ID。当点击跳转到B页面是,判断id是否为空,然后绑定数据
YaYa 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zx75991 的回复:]
点击这条数据,比如绑定一个button,commandargument绑定字段名称,commandname绑定判断字符,在gridview的rowcommand事件中,根据这个判断字符,获得相应的绑定的字段的名称,后面进行你的操作
[/Quote]

谢谢!但还有个问题,就是不管我点哪一行数据,它都只绑定第一行数据的值,这又是为什么呢?
Tragedy 2011-05-21
  • 打赏
  • 举报
回复
赋值lable.Text就行了
PPMMOOT 2011-05-21
  • 打赏
  • 举报
回复
lable不用绑定,lable.text=数据 就可以
YaYa 2011-05-21
  • 打赏
  • 举报
回复
如果我绑定的那列数值是超级链接的,不需要按钮点击的,那又改如何绑定呢?
lightning0218 2011-05-21
  • 打赏
  • 举报
回复
label只是做一个显示数据用的没有什么语句,直接在B页面的Page事件中把查处的那条数据用string的形式付给label就可以了....
天下在我心 2011-05-21
  • 打赏
  • 举报
回复
点击这条数据,比如绑定一个button,commandargument绑定字段名称,commandname绑定判断字符,在gridview的rowcommand事件中,根据这个判断字符,获得相应的绑定的字段的名称,后面进行你的操作
jyw555785 2011-05-21
  • 打赏
  • 举报
回复
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//你想要的结果
}
}
YaYa 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zx75991 的回复:]
点击这条数据,比如绑定一个button,commandargument绑定字段名称,commandname绑定判断字符,在gridview的rowcommand事件中,根据这个判断字符,获得相应的绑定的字段的名称,后面进行你的操作
[/Quote]

谢谢!但还有个问题,就是不管我点哪一行数据,它都只绑定第一行数据的值,这又是为什么呢?
文档包内容: 1.通过自己建立DataTable对象,往数据源插入数据 4.通过泛型来获取数据 (这个需要好好的理解) 5.使用SqlDataSource,ObjectDataSource作为数据源控件的用法 6.通过使用缓存来处理数据 7.关于FormView控件的方法 8.数据源控件的分页 9.在Gridview对数据进行排序 10.关于如何处理Checkboxlist的方法 11.在Gridview使用DropDownLIst的问题。 12.鼠标移动变色 13.关于在Gridview的单元格实现用“...”代替超长字符串 14.数据控件数据强制换行显示 15.关于隐藏Gridview的某一数据 16.通过checkbox实现全选和反选的功能 17.关于数据突出显示 18.使用xml作为数据源的方法(内联,外联,数据库读取)(treeview,listbox,gridview,repeater) 19.GridView的方法使用(格式,DataFormatString),设置行属性 当满足条件后,隐藏某些ImageButton 20.GridView控件的模板使用方法 21.当数据的值小于?时,显示不同的图标 22.关于在GridView显示摘要(这个没有搞懂) 23.使用主从来显示数据(GridView,DetailView) 24.显示主题 25.通过编程的方式创建DataSet对象 26.采取独立提供程序的方法执行动态查询 27.异步执行命令概述(这个暂时没有弄懂,需要一些时间搞懂) 28.多活动结果集(MARS,解释为在单个连接上执行多个查询工作,而不是重复的开关数据库的连接,这个在查询多个数据的时候很有用,它的功能并不能并行执行查询,只是串行执行多个查询而已) 29.关于普通和异步执行方式获取xml数据 30. 将xml文件作为参数传递给数据库表 31.Eval和Bind绑定数据 32.启用DataTableAutoincrementing字段 33. DataSet找到某一行的对该行的第几进行修改 34.创建DataTable,并获取某一行数据 35.将xml数据读入DataTable 36.DataTable数据记录的统计 37.合并两个结构一样的DataTable 38.在DataTable排序 39.将数据写入excel,从excel读取数据 40.页眉模板隐藏GridView控件的行 41.泛型与类结合使用来绑定数据,并添加到数据控件 42.数据读取到treeview,指定日期下添加相应时间 这些都是我自己学习积累的宝贵经验,希望对大家能有所帮助!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧