gpt4 book ai didi

c# - 我的 ListView 不会输出,是否需要回发?

转载 作者:行者123 更新时间:2023-11-30 17:04:18 25 4
gpt4 key购买 nike

所以我正在运行一个 C# 函数,它应该根据值更改文本的颜色。当我从 ListView 中删除该函数时,它会输出值,但是当我包含它时,它什么也不会输出我现在终于发现我的函数没有任何问题,但我如何将数据绑定(bind)到 ListView ,所以我想知道我做错了什么。

这是我的代码:

 <asp:SqlDataSource id="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:2007  SoundAssist VER 1.0.5  05-12-2011 (2013-06-24)ConnectionString %>" ProviderName="<%$ ConnectionStrings:2007 SoundAssist VER 1.0.5  05-12-2011  2013-06-24)ConnectionString.ProviderName %>" SelectCommand="SELECT [Plant], [Group No#] AS column1, [Group], [Job Code] AS Job_Code, [TWA], [Job Classification] AS Job_Classification, [Job Function] AS Job_Function, [Job Description] AS Job_Description FROM [Temp Table that contains TWA values] WHERE (([Job Description] = ?) AND ([Group] = ?) AND ([Job Classification] = ?))">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList6" Name="Job_Description" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList4" Name="Group" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList5" Name="Job_Classification" PropertyName="SelectedValue" Type="String" />
</SelectParameters>

和我的 ListView 行:

<asp:ListView id="YourListView"  runat="server" DataSourceID="SqlDataSource3" OnItemDataBound="YourListView_ItemDataBound" >

还有我的颜色函数:

protected void YourListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Label theTWALabel = (Label)e.Item.FindControl("TWALabel");
int theTWAValue = Convert.ToInt32(theTWALabel.Text);
if (theTWAValue >= 85)
{
if (theTWAValue < 90)
{
theTWALabel.CssClass = "YellowThis";
}
else
{
theTWALabel.CssClass = "RedThis";
}
}
}
}

这是 ListView :

<ItemTemplate>
<span style="background-color: white;color: #333333; border: 2em; border-width:1em; border-color:black;">
Plant Name:
<asp:Label id="PlantLabel" runat="server" Text='<%# Eval("Plant") %>' />
<br />
Department #:
<asp:Label id="column1Label" runat="server" Text='<%# Eval("column1") %>' />
<br />
Department Name:
<asp:Label id="GroupLabel" runat="server" Text='<%# Eval("Group") %>' />
<br />
Job Code:
<asp:Label id="Job_CodeLabel" runat="server" Text='<%# Eval("Job_Code") %>' />
<br />
TWA
<asp:Label id="TWALabel" runat="server" Text='<%# Eval("TWA") %>' />
<br />
</span>
</ItemTemplate>

我也没有输入这些(我的意思是 Sql 语句),我使用内置的 asp.net 连接向导来执行此操作,它为我创建了所有内容。

编辑:如果您需要任何其他信息来帮助回答这个问题,请发表评论

Edit2:我可能需要一个 if 回发函数吗?

最佳答案

问题是您正在尝试访问 YourListView_ItemDataBound 事件处理程序中的控件,此时 ListView 尚未加载。

尝试将事件处理程序 onLoad 添加到您的 ListView 并在该方法中添加,然后您可以像这样处理项目:

protected void YourListView_Load(object sender, EventArgs e)
{
Label theTWALabel;
int theTWAValue;
foreach (ListViewItem item in YourListView.Items)
{
theTWALabel = (Label)item.FindControl("TWALabel");
theTWAValue = Convert.ToInt32(theTWALabel.Text);
if (theTWAValue >= 85)
{
if (theTWAValue < 90)
theTWALabel.ForeColor = System.Drawing.Color.Yellow;
else
theTWALabel.ForeColor = System.Drawing.Color.Red;
}
}
}

关于c# - 我的 ListView 不会输出,是否需要回发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com