gpt4 book ai didi

c# - 如何根据 ASP.NET//C# 中的内容更改 ListView 中图像的 CSS 类

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:54 24 4
gpt4 key购买 nike

我有一个 ListView填充了来自 DataSet 的数据从 MySql 数据库中加载。 ListView显示稍后创建 word 文件的文本模块列表。这是 ListView定义:

<asp:ListView ID="addTextModuleList" runat="server" OnItemCommand="addTextModuleList_OnItemCommand" DataKeyNames="ID" >           
<ItemTemplate>
<asp:LinkButton ID="addTextModuleButton" runat="server" CssClass="insertTextModuleButtonFade" CommandName="insertTextModule"></asp:LinkButton>
<div id="listViewId" runat="server" style="float:left; width:24px; height:16px; margin:2px 15px 5px 0px; text-align:right;"><%# Eval("ID") %></div>
<div style="float:left; width:200px; height:25px; margin:2px 10px 5px 0px; text-align:left; font-weight:bold;"><%# Eval("shortName") %>:</div>
<div style="float:left; width:700px; margin:5px;"><%# Eval("fullName") %></div>
<div class="clear"></div>
</ItemTemplate>
</asp:ListView>

我想通过单击图标将 textModules 添加到确认中。这就是我的问题。该图标必须以不同的颜色显示,具体取决于是否已添加文本模块。图标加载为 asp:Linkbutton我有一个 CSS 类用于以绿色显示的图标,另一个 CSS 类用于相同的褪色灰色图标。

我可以更改 CssClass单击图标的图标,但我不知道如何更改 CssClass加载 Page 时的图标或 ListView .有什么想法吗?

这是我的 DataSet 的代码隐藏:

protected void executeTemplateSelection()
{
// connect to database
MySqlConnection con = new MySqlConnection();
con.ConnectionString = Helper.CONNECTION_STRING;
MySqlCommand cmd = null;

// load customer textModules
con.Open();
cmd = new MySqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT * FROM textmodule WHERE ID IN " + Session["loadTextModuleTemplates"].ToString();
MySqlDataAdapter sda = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
addTextModuleList.DataSource = ds;
addTextModuleList.DataBind();
con.Close();

cmd = new MySqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "SELECT * FROM linktextmodule WHERE confirmationId = " + Session["currentConfirmationId"].ToString();
MySqlDataReader mdr = cmd.ExecuteReader();
ds.Tables[0].Columns.Add("alreadyAdded");

while (mdr.Read())
{

for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
if (mdr["textModule"].Equals(ds.Tables[0].Rows[i]["ID"]))
{
ds.Tables[0].Rows[i]["alreadyAdded"] = "yes";
}
}

}

}

最佳答案

您可以实现 ListView.ItemDataBound 事件(请参阅 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound%28v=vs.100%29.aspx ),这将允许您在每个元素绑定(bind)时更改控件的属性。我以前用过这种方法。

您也可以尝试直接在 CssClass 属性中使用数据绑定(bind)语法 (<%# %>),但我不确定它在 CssClass 属性中是否像在其他一些属性中一样起作用。您已经在 div 中执行此操作,但请参见例如 http://support.microsoft.com/kb/307860他们在属性中给出了一个示例。

关于c# - 如何根据 ASP.NET//C# 中的内容更改 ListView 中图像的 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322580/

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