简体   繁体   English

突出显示选定的表格单元格C#菜单

[英]Highlight selected table cell C# Menu

I have a dynamic Menu populating from database. 我有一个从数据库填充的动态菜单。 I have issues in highlighting the currently selected Menu, I am using ASP.net C#. 我在使用ASP.net C#时突出显示当前选择的菜单时遇到问题。 Please check the code below. 请检查下面的代码。

HTML 的HTML

function highlight(clMenu) {
        clMenu.id = "clMenu";
    }

<form id="Form1" method="post" runat="server">
    <asp:Table ID="tblMenu" runat="server" Width="100%">
    </asp:Table>
</form>

C# C#

TableRow rwMenu = new TableRow();
ConnectionCls ConObj = new ConnectionCls();
string StrQuery = "select * from Menus where isenabled=1";
ConObj.GetSqlDataTable(ref Dt, StrQuery);
if (Dt.Rows.Count > 0)
{
  for (i = 0; i <= Dt.Rows.Count - 1; i++)
  {
    string Href = Dt.Rows[i]["url"].ToString();
    clMenu.Text = "<a Href=" + Href + ">" + Dt.Rows[i]["MenuName"] + "</a>";
    clMenu.Attributes.Add("onclick", "highlight(this)");
    rwMenu.Cells.Add(clMenu);
    tblMenu.Rows.Add(rwMenu);
  }
}

Everything is working perfectly except the menu onclick event. 除了菜单onclick事件外,其他所有东西都运行正常。 When i click on a Menu its background color i am able to change successfully, on clicking another menu its background color also changing but the previous selected menu its not clearing 当我单击某个菜单时,其背景颜色可以成功更改;单击另一个菜单时,其背景颜色也将更改,但是先前选择的菜单未清除

CSS 的CSS

#clMenu {
    background-color:#EE3D43;
}

I will recommend to go for CSS class attachment instead of setting DOM element's id ; 我将建议使用CSS类附件,而不是设置DOM元素的id because logically there has to be unique ids to each and every DOM element. 因为从逻辑上讲,每个DOM元素都必须具有唯一的ID。 But single CSS class can be assigned to many elements though. 但是,单个CSS类却可以分配给许多元素。

So please have a look at below changes: 因此,请查看以下更改:

CSS: CSS:

.clMenu {
    background-color:#EE3D43;
}

Javascript code: JavaScript代码:

function highlight(domElem) {
    $(".clMenu").removeClass('clMenu'); //removing highlight class from previously clicked  menu
    $(domElem).addClass('clMenu'); //adding highlight class to currently clicked menu
}

If this class are used only for this anchors only then try this 如果此类仅用于该锚点,则尝试此

function highlight(clMenu){ 
    $(this).attr('id').click(function () {
       $(document).find('.anchorColor').removeClass('anchorColor');
       var aId = $(this).attr('id');
       $(this).addClass('anchorColor');
    });
}

and instead of doing the css with id try with class: 而不是用id做CSS尝试用class:

.anchorColor {
    background-color:#EE3D43;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM