在WEB页面里
<asp:BoundColumn DataField="Mobile" HeaderText="手机"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="验证">
<ItemTemplate>
<asp:Label ID="lblVali" Runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.Validate_Status")%>'>
</asp:Label>
<asp:LinkButton CommandName="Validate" Runat="server" ID="lbtn" Text="验证" ForeColor="#3300ff"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
是这样的.我想根据Label.Text值,来控制LinkButton的显示.如果是Label显示"已" LINKButton就不显示.于是我在ItemDataBound事件中这样写.
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
TableCell myTableCell;
myTableCell=e.Item.Cells[8];
Label Lb1=(Label)myTableCell.FindControl("lblSend");
string abd=Lb1.Text.Trim();
if(Lb1.Text.Trim()=="已")
{
((LinkButton)myTableCell.Controls[1]).Visible=false;
}
}
可是不行啊,((LinkButton)myTableCell.Controls[1]).Visible=false;找不到引用对象.ItemCreate事件也不行.根本不执行if(Lb1.Text.Trim()=="已").晕了.
<asp:BoundColumn DataField="Mobile" HeaderText="手机"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="验证">
<ItemTemplate>
<asp:Label ID="lblVali" Runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.Validate_Status")%>'>
</asp:Label>
<asp:LinkButton CommandName="Validate" Runat="server" ID="lbtn" Text="验证" ForeColor="#3300ff"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
是这样的.我想根据Label.Text值,来控制LinkButton的显示.如果是Label显示"已" LINKButton就不显示.于是我在ItemDataBound事件中这样写.
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
TableCell myTableCell;
myTableCell=e.Item.Cells[8];
Label Lb1=(Label)myTableCell.FindControl("lblSend");
string abd=Lb1.Text.Trim();
if(Lb1.Text.Trim()=="已")
{
((LinkButton)myTableCell.Controls[1]).Visible=false;
}
}
可是不行啊,((LinkButton)myTableCell.Controls[1]).Visible=false;找不到引用对象.ItemCreate事件也不行.根本不执行if(Lb1.Text.Trim()=="已").晕了.
我这样试了.仍然照常显示.
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
if(((Label)e.Item.FindControl("lblSend")).Text.Trim()=="已")
{
((LinkButton)e.Item.FindControl("lbtnSend")).Visible=false;
}}
很难吗?这样不可以吗?
你那种方法也不好使
你那种方法也不好使---------------------------
怎么不好使啊?我在我的机上可是测试通过的哦
<asp:TemplateColumn HeaderText="发送">
<ItemTemplate>
<asp:Label ID="lblSend" Runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.Send_Status")%>'>
</asp:Label>
<asp:LinkButton CommandName="Send" Runat="server" ID="lbtnSend" Text="发送" ForeColor="#3300ff" Visible='<%# DataBinder.Eval(Container,"DataItem.Send_Status").ToString()!="已"%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
后台:
protected bool GetStatus(string str)
{
if(str == "已")
{
return false;
}
else
{
return true;
}
}
如果真的不好使,还可以用上面方法,我觉得实现的方法挺多的。