前台操作DataGrid 模板列 显示

whitechololate 2009-02-23 02:50:49


在一个DataGrid中,我想根据绑定的某个字段IS_KERNEL 来判断 另一个绑定字段(调整顺序模板列)的显示 这样做 实现不了,哪位能帮帮忙

<%# if(DataBinder.Eval(Container.DataItem,"IS_KERNEL").ToString() =="Y" && IsBusinessCenter=true) {%>
<asp:TemplateColumn HeaderText="调整顺序" ItemStyle-HorizontalAlign=Center>
<HeaderStyle HorizontalAlign="Center" CssClass="tit_list_01" Width=10%></HeaderStyle>
<ItemTemplate>
<a href="ChangeSortNo.aspx?pid=<%#DataBinder.Eval(Container.DataItem,"Pkid")%>&isUp=1">
<img src="../../images/icon_up.gif"></a>  
<a href="ChangeSortNo.aspx?pid=<%#DataBinder.Eval(Container.DataItem,"Pkid")%>&isUp=0">
<img src="../../images/icon_down.gif"></a>
</ItemTemplate>
</asp:TemplateColumn><%}%>
...全文
134 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-02-23
  • 打赏
  • 举报
回复
在DataGrid1_ItemDataBound里判断字段值。设置是否隐藏列。
if(e.Item.Cells[1].Text.ToString().Trim()=="")
{
DataGrid1.Columns[2].Visible = False
}
周公 2009-02-23
  • 打赏
  • 举报
回复
主要就是使用模版列,
核心代码如下:

<asp:TemplateField HeaderText="婚否">
<ItemTemplate>
<asp:LinkButton CommandArgument='<%# Eval("Id") %>' Enabled='<%# Boolean.Parse(Eval("Married").ToString())==true?false:true %>' Text="设为结婚" runat="server" OnCommand="SetMarried"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

因为你使用的是DataGrid,和GridView有些不太一样,但是大体思路是一致的。
详见:http://blog.csdn.net/zhoufoxcn/archive/2007/06/13/1650952.aspx
周公 2009-02-23
  • 打赏
  • 举报
回复
<%# Eval("Name").ToString()=="1"?"上学期":"下学期" %>
//这里的Name可以是另一列的。
我这个例子就是当结婚之后就不能再设置成结婚了,和你说的功能很类似的。
Fibona 2009-02-23
  • 打赏
  • 举报
回复
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[0].Text == "Y")//IS_KERNEL
{
e.Row.Cells[1].Visible = true;
}
else
{
e.Row.Cells[1].Visible = false;
}

//或者放在同一个单元格里面,用一个Lable来在绑定IS_KERNELLBL的值
Label lb = (Label)e.Row.Cells[2].FindControl("IS_KERNELLBL");
if (lb.Style.Value == "Y")
{
e.Row.Cells[2].Visible = true;
lb.Visible = false;
}
else
{
e.Row.Cells[1].Visible = false;
}
}



}
whitechololate 2009-02-23
  • 打赏
  • 举报
回复
我的需求不是一楼所说的,比较麻烦,是根据绑定的某一列作为判断列,来控制另一个模板列的显示
the_pain 2009-02-23
  • 打赏
  • 举报
回复
用三元运算试试。
<%# Eval("Name").ToString()=="1"?"上学期":"下学期" %>

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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