请问能不能再.cs文件中 重新把label的text值改绑定值?

witeem 2014-08-16 07:59:16
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Label ID="lbl_TR" runat="server" Text='<%# Eval("S_TR")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
请问能不能再.cs文件中 重新把label的text值改绑定值??
...全文
153 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
祥子爱游戏 2014-08-17
  • 打赏
  • 举报
回复
public string name =“name”; <%=name>
witeem 2014-08-16
  • 打赏
  • 举报
回复
引用 11 楼 sp1234 的回复:
[quote=引用 3 楼 u012224214 的回复:] [quote=引用 1 楼 caozhy 的回复:] 直接修改S_TR变量不就可以了。
直接在CS文件写 this.lbl_TR.text = "'<%# Eval("ZY_TR")%>'" 我试了这样 不行 [/quote] 找个专业一点的asp.net专著看看,这样可以让你首先学到基本原理。仅靠网络上的简单资料然后瞎猜,是不行的。[/quote] /*当下拉框ddl_ly的text为省财政投入时,那么 <asp:TemplateField HeaderText="省财政投入">同时 数据绑定第一个label,隐藏其他label。: <asp:Label ID="lbl_S" runat="server" Text='<%# Eval("S_TR")%>'></asp:Label> <asp:Label ID="lbl_ZY" runat="server" Text='<%# Eval("ZY_TR")%>'></asp:Label> <asp:Label ID="lbl_HY" runat="server" Text='<%# Eval("HY_TR")%>'></asp:Label> <asp:Label ID="lbl_QT" runat="server" Text='<%# Eval("QT_TR")%>'></asp:Label> */ 我就是想实现类似上面那样的功能。下面是我错误的代码: protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e) { //string ly = this.ddl_ly.SelectedItem.Text; Label lbl_TR = e.Row.FindControl("lbl_TR") as Label; Label lbl_ZY = e.Row.FindControl("lbl_ZY") as Label; Label lbl_HY = e.Row.FindControl("lbl_HY") as Label; Label lbl_QT = e.Row.FindControl("lbl_QT") as Label; if (e.Row.RowType == DataControlRowType.Header) { if (ddl_ly.SelectedItem.Text == "省财政投入") { e.Row.Cells[3].Text = "省财政投入"; lbl_TR.Visible = true; lbl_ZY.Visible = false; lbl_HY.Visible = false; lbl_QT.Visible = false; } else if (ddl_ly.SelectedItem.Text == "中央财政投入") { e.Row.Cells[3].Text = "中央财政投入"; lbl_TR.Visible = false; lbl_ZY.Visible = true; lbl_HY.Visible = false; lbl_QT.Visible = false; } else if (ddl_ly.SelectedItem.Text == "行业企业投入") { e.Row.Cells[3].Text = "行业企业投入"; lbl_TR.Visible = false; lbl_ZY.Visible = false; lbl_HY.Visible = true; lbl_QT.Visible = false; } else if (ddl_ly.SelectedItem.Text == "其他投入") { e.Row.Cells[3].Text = "其他投入"; lbl_TR.Visible = false; lbl_ZY.Visible = false; lbl_HY.Visible = false; lbl_QT.Visible = true; } } }
  • 打赏
  • 举报
回复
引用 3 楼 u012224214 的回复:
[quote=引用 1 楼 caozhy 的回复:] 直接修改S_TR变量不就可以了。
直接在CS文件写 this.lbl_TR.text = "'<%# Eval("ZY_TR")%>'" 我试了这样 不行 [/quote] 找个专业一点的asp.net专著看看,这样可以让你首先学到基本原理。仅靠网络上的简单资料然后瞎猜,是不行的。
  • 打赏
  • 举报
回复
谁知道你想显示哪一个? 如果你有一个自定义函数可以用于决定如何“选择”,例如
public protected string GetMyTR(string a,string b,string c, string d)
{
    ......
}
那么你应该这样绑定
<asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Label ID="lbl_TR" runat="server" Text='<%# GetMyTR((string)Eval("S_TR"),(string)Eval("ZY_TR"),(string)Eval("HY_TR"),(string)Eval("QT_TR"))%>'></asp:Label>
                     </ItemTemplate>
  </asp:TemplateField>
如果你可以通过数据源对象(例如数据实体类型叫做 MyEntity )来决定,例如
public protected string GetMyTR(MyEntiry obj)
{
    ......
}
那么你也可以这样绑定
<asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Label ID="lbl_TR" runat="server" Text='<%# GetMyTR((MyEntity)Container.DataItem)%>'></asp:Label>
                     </ItemTemplate>
  </asp:TemplateField>
witeem 2014-08-16
  • 打赏
  • 举报
回复
引用 7 楼 HolyPlace 的回复:
用两个label控制吧
我现在是用四个控件, <asp:TemplateField HeaderText=""> <ItemTemplate> <asp:Label ID="lbl_S" runat="server" Text='<%# Eval("S_TR")%>'></asp:Label> <asp:Label ID="lbl_ZY" runat="server" Text='<%# Eval("ZY_TR")%>'></asp:Label> <asp:Label ID="lbl_HY" runat="server" Text='<%# Eval("HY_TR")%>'></asp:Label> <asp:Label ID="lbl_QT" runat="server" Text='<%# Eval("QT_TR")%>'></asp:Label> </ItemTemplate> </asp:TemplateField> 怎么样控制按条件显示其中的一个??
witeem 2014-08-16
  • 打赏
  • 举报
回复
引用 7 楼 HolyPlace 的回复:
用两个label控制吧
那得用四个
HolyPlace 2014-08-16
  • 打赏
  • 举报
回复
用两个label控制吧
HolyPlace 2014-08-16
  • 打赏
  • 举报
回复
从页面的生命周期来讲这样是不可行的
witeem 2014-08-16
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
晕,这样当然不行。
那要怎么样呢? 求解
threenewbee 2014-08-16
  • 打赏
  • 举报
回复
晕,这样当然不行。
witeem 2014-08-16
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
直接修改S_TR变量不就可以了。
直接在CS文件写 this.lbl_TR.text = "'<%# Eval("ZY_TR")%>'" 我试了这样 不行
我现在在路上 2014-08-16
  • 打赏
  • 举报
回复
可以,只要在为gridview数据绑定后,就可以了。这时候还可以根据绑定的值进行重新修改. 重新绑定是啥意思?为什么不直接绑定?
threenewbee 2014-08-16
  • 打赏
  • 举报
回复
直接修改S_TR变量不就可以了。

62,046

社区成员

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

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

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

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