gpt4 book ai didi

c# - 回发从页面中删除样式

转载 作者:行者123 更新时间:2023-11-30 22:45:27 25 4
gpt4 key购买 nike

目前,我已经创建了一个 ASP.Net 页面,其中有一个下拉控件,其中 autopostback 设置为 true。我还为各个列表项添加了彩色背景。每当在下拉控件中选择一个项目时,样式就会从所有列表项中完全删除。我怎样才能防止这种情况发生?我需要回传以根据所选的下拉项提取数据。这是我的代码。

aspx文件:

<asp:DropDownList ID="EmpDropDown" AutoPostBack="True" OnSelectedIndexChanged="EmpDropDown_SelectedIndexChanged" runat="server">
</asp:DropDownList>
<asp:TextBox ID="MessageTextBox" TextMode="MultiLine" Width="550" Height="100px" runat="server"></asp:TextBox>

aspx.cs 背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetEmpList();
}
}

protected void EmpDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
GetEmpDetails();
}

private void GetEmpList()
{
SqlDataReader dr = ToolsLayer.GetEmpList();
int currentIndex = 0;

while (dr.Read())
{
EmpDropDown.Items.Add(new ListItem(dr["Title"].ToString(), dr["EmpKey"].ToString()));

if (dr["Status"].ToString() == "disabled")
{
EmpDropDown.Items[currentIndex].Attributes.Add("style", "background-color:red;");
}
currentIndex++;
}

dr.Close();
}

private void GetEmpDetails()
{
SqlDataReader dr = ToolsLayer.GetEmpDetails(EmpDropDown.SelectedValue);

while (dr.Read())
{
MessageTextBox.Text = dr["Message"].ToString();
}
dr.Close();
}

谢谢

最佳答案

您可能想看看这个博客条目:ListItem, attributes and viewstate... .

它归结为编写一个自定义列表控件(我认为在您的情况下为 DropDownList),它显式地将属性保存在 View 状态中。我猜你甚至可以考虑使用控制状态。

该文章提到此行为是“设计使然”(也称为功能),但未提及做出该决定的原因。如果有人知道,我会对“为什么”感兴趣:)

关于c# - 回发从页面中删除样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055871/

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