ListView
에 DataSet
의 데이터가로드되어 MySql 데이터베이스에서로드되었습니다. ListView
에는 나중에 단어 파일을 만들 수있는 텍스트 모듈 목록이 표시됩니다.ASP.NET의 내용에 따라 ListView에서 CSS 클래스를 변경하는 방법 // C#
<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를 추가 할 다음은 ListView
정의입니다. 그리고 그것은 내 문제입니다. 텍스트 모듈이 이미 추가되었는지 여부에 따라 아이콘을 다른 색상으로 표시해야합니다. 아이콘은 asp:Linkbutton
으로로드되며 녹색으로 표시된 아이콘의 CSS 클래스와 회색 아이콘이있는 동일한 아이콘의 다른 CSS 클래스가 있습니다.
나는 그것을 클릭하여 아이콘의 CssClass
을 변경할 수 있습니다하지만 난 Page
또는 ListView
를로드하는 동안 아이콘의 CssClass
을 변경하는 방법을 모르겠어요. 어떤 아이디어?
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를 사용하는 솔루션은 내가 찾고있는 솔루션입니다. – user1814545