当页面首次加载时,我有一个标签,其中有0或1.查看代码,您将看到我想要做的事情。但它不起作用,因为页面已经加载。
protected void rptBugStatus_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lblName = e.Item.FindControl("lblBugStatus") as Label;
if (lblName.Text == "1")
{
lblName.Text = lblName.Text + "Under arbete";
}
else if (lblName.Text == "0")
{
lblName.Text = "Fixad";
}
else { }
}
}
答案 0 :(得分:1)
如果可能的话,你真的想避免这种类型的编码。这将很快成为一个无法维护的网站。
查询基础数据而不是GUI元素。
答案 1 :(得分:0)
你把你的代码放在哪里?并谨慎e.Item.FindControl("lblBugStatus") as Label;
可能会返回null
答案 2 :(得分:0)
它可以很好地控制它。但我想出了另一种方法来获得我想要的数据。我要做的就是更好地修复xml结构。
答案 3 :(得分:0)
您现在可能已经解决了这个问题,但我认为您发布代码的问题是:
Label lblName = e.Item.FindControl("lblBugStatus") as Label;
因为您在转发器中引用控件,所以每个转发器项内的控件都是根据其上下文动态命名的。很可能控件的名称是这样的:
“rptBugStatus $ $ repeaterItem0 lblBugStatus”
要找出确切的名称,硬编码值,在浏览器中运行页面,并查看HTML输出(通过浏览器菜单中的“查看源代码”)。您应该能够向下滚动并查看转发器(它将呈现为<table>
标签),其项目以及每个项目内的控件。将设置ID /名称,您可以将它们复制/粘贴到FindControl方法中。
希望这有帮助,
内特
答案 4 :(得分:0)
好的,我假设您已设置此标签(假设在转发器中,从您的代码中)以获得值 - 我已尝试使用以下代码将数据绑定到完全相同的内容。
protected override void OnPreRender(EventArgs e)
{
base.OnLoad(e);
List<string> strList = new List<string>();
strList.Add("1");
rptBugStatus.DataSource = strList;
rptBugStatus.DataBind();
}
protected void rptBugStatus_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lblBugStatus = e.Item.FindControl("lblBugStatus") as Label;
// have added this just so we are actually setting the text property on the bug status
// - i have assumed you do this.
lblBugStatus.Text = e.Item.DataItem.ToString();
if (lblBugStatus.Text.Equals("1"))
{
lblBugStatus.Text = lblBugStatus.Text + "Under arbete";
}
else if (lblBugStatus.Text.Equals("0"))
{
lblBugStatus.Text = "Fixad";
}
}
}
aspx是
<asp:Repeater runat="server" ID="rptBugStatus" OnItemDataBound="rptBugStatus_ItemDataBound">
<ItemTemplate>
<asp:Label ID="lblBugStatus" runat="server"></asp:Label>
</ItemTemplate>
</asp:Repeater>
我没有问题。
1在arbete下
如果您隐藏了任何代码,我认为您需要发布更多代码:)
添