我在绑定一个GridView的时候,里面添加了一个绑定列,并用Eval()方法进行了绑定
为什么我取不到它的值?自动绑定列的值却可以取到.谁能帮帮我啊。
<asp:GridView ID="GridView1" runat="server" Width="100%">
<Columns>
<asp:TemplateField HeaderText="123">
<ItemTemplate>
<%# Eval("Weight")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
protected void Page_Load(object sender, EventArgs e)
{
shopCart myCart = new shopCart();
DataTable dt = myCart.getMyCart(9);
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
this.Label1.Text = this.GridView1.Rows[0].Cells[0].Text;
}
为什么我取不到它的值?自动绑定列的值却可以取到.谁能帮帮我啊。
<asp:GridView ID="GridView1" runat="server" Width="100%">
<Columns>
<asp:TemplateField HeaderText="123">
<ItemTemplate>
<%# Eval("Weight")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
protected void Page_Load(object sender, EventArgs e)
{
shopCart myCart = new shopCart();
DataTable dt = myCart.getMyCart(9);
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
this.Label1.Text = this.GridView1.Rows[0].Cells[0].Text;
}
解决方案 »
- jquery 中的插件中,插件是什么东西呢?
- gridview下拉关联显示数据的问题求教达人
- |zyciis| 在ASP.NET中能不能运行bat文件 注册windows服务 谢谢
- Flashpaper.exe为何在win2003中,asp.net编程下,启动不了
- 如何设置asp.net页面过期
- 求救 用ASP.NET在2000系统下连接DB2的问题
- 我在用户控件里有如下代码?请问如何调用?
- 急问!请高手指点,水晶报表中的字段超链接到其他页面用querystring传递中文参数时为什么传递不全?少最后一个字
- 请问个批量录入的问题
- HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
- 请教企业内部不同系统间数据交换接口开发问题
- asp.net发送邮件的问题
foreach(GridViewRow gvr in GridView1.Rows)
{
Button btn=(Button)gvr.FindControl("Button1");
//需要像这样找到嵌在GridView中的控件才能拿来使用,肯定不能直接使用
}
<asp:GridView ID="GridView1" runat="server".....>
....
<asp:TemplateField HeaderText="用户编号" SortExpression="au_id">
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>' NavigateUrl='<%# "GridViewMubiao.aspx?id="+DataBinder.Eval(Container.DataItem,"au_id") %>' Target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
// 计算数据,完全可以从数据看取得
ICollection CreateDataSourceByXianhuiMeng()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal))); for (int i = 0; i < 8; i++)
{
System.Random rd = new System.Random(Environment.TickCount * i); ;
dr = dt.NewRow();
dr[0] = "班级" + i.ToString();
dr[1] = "【孟子E章】" + i.ToString();
dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
return dv;
} protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GridView1.DataSource = CreateDataSourceByXianhuiMeng();
GridView1.DataBind();
this.Label1.Text = this.GridView1.Rows[0].Cells[1].Text;
this.Label2.Text = ((Literal)this.GridView1.Rows[0].FindControl("x")).Text;
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" Font-Size="12px" CellPadding="3">
<HeaderStyle BackColor="#EDEDED" />
<Columns>
<asp:TemplateField HeaderText="模版列">
<ItemTemplate>
<asp:Literal ID="x" runat="server" Text='<%#Eval("学生姓名") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
然后在后台C#:
------------------------------------------------------------
HyperLink hp;
...
hp = (HyperLink)gvr.FindControl("HyperLink1");
...=hp.Text;
//这个时候找到这个控件才能使用
我是直接Eval绑定的.怎么取值呢?是也试过用Label来绑定Text来绑定值,也取不出来啊.
this.Label1.Text = ((Label)(this.GridView1.Rows[0].Cells[0].Controls[0])).Text;报错
无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.Label”。
把(Label)去掉啊~~~
用遍历的方法好点:
foreach(GridViewRow gvr in GridView1.Rows)
或是要找某一行中的模板列中的控件:
Button btn=(Button)GridView1.Rows[0].FindControl("Button1-->控件ID");
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'
</ItemTemplate>
不就得了 怎么简单怎么来啊 干什么非要怎么难怎么做啊,再说模板列就是用来放置控件用的
除非你是绑定列 才能这样用
模板列中要用 FindControl去找
所以你在模板列中放一个控件
再在前台用 Eval()绑定一下值
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Weight")%>'></asp:Label>
</ItemTemplate>我这样做了啊.但为什么也取不出来.
this.Label1.Text = ((Label)(this.GridView1.Rows[0].Cells[0].Controls[0])).Text;报错
无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.Label”。
一定要加一个 Literal 控件 ,不是代码都写出来了嘛?