如果是数字,请选择一个 ID

本文关键字:一个 ID 数字 请选择 如果 | 更新日期: 2023-09-27 18:30:54

有没有办法从 aspx 文件中选择一个列表项 从.cs文件中使<li>可见。<li>的 ID 是数字。

它们之所以是数字,是因为此页面是网站的自定义视图编辑器,它正在更新数据库,然后为用户加载正确的视图。我需要在此页面上为某些用户隐藏一些项目。

来自 aspx 页的代码片段:

<div  id="connectedSortableLists">
<ul  id="unselected"  class="connectedSortable">
<li class="ui-state-highlight" id="0">Log #</li>
<li class="ui-state-highlight" id="19">Log date</li>
</ul>
</div

我尝试将runat="server"添加到各个地方,但没有运气。有没有办法为网格视图选择 like,例如:grdv_dummy.Columns[29].Visible = false;

我想通过 ID 选择li以将可见性设置为 false 以根据用户在服务器端执行此操作。保存新的自定义视图时,将使用 ID 号更新数据库。当我尝试使用所需页面尝试加载id="item"时,我收到错误Input string was not in a correct format;由于数据库的条目为"项目"。

我觉得我好像忽略了一些东西,尽管更有可能是完全错误的。

谢谢你的时间

如果是数字,请选择一个 ID

你肯定需要runat=server你的li元素(或ul元素)。然后,您需要在ID中添加字母-您不能仅将数字作为id。所以像"项目"这样的东西。然后在.cs文件中使用类似以下内容的内容:

private HtmlElement FindListItem(int id)
{
    HtmlElement listItem = this.FindControl("item" + id.ToString()) as HtmlElement;
    if (listItem != null && listItem.TagName == "li")
    {
        return listItem;
    }
    return null;
}

基本上 FindControl() 是你需要的。然后你可以像这样使用它:

var item = FindListItem(19);
if (item != null)
{
    item.Visible = false;
}

哦,根据您设置代码的方式,您将在Page_LoadonPreRender中使用它......

您无法在服务器端直接访问它。但是,您可以从服务器端调用javascript函数,它可以启用''禁用它。

在服务器端

string jsFunc = "DisableHtmlLi(" + iterator + ")";
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "DisableHtmlLi", jsFunc, true);

在客户端

<script type="text/javascript" language="javascript">
    function DisableHtmlLi(index) {
        var element = document.getElementById(index);
             element.visible= false;
    }
</script>
设法

找到了解决问题的方法。我知道li不应该放在其他li,但它对我有用。

ASPX 已更改

<div  id="connectedSortableLists">
<ul  id="unselected"  class="connectedSortable">
<li class="ui-state-highlight" id="0">Log # </li>
<li class="ui-state-highlight" id="19">Log date</li>

 <li runat="server" id="full" visible="false">                        
 <li class="ui-state-highlight" id="32">Days Country</li>
 <li class="ui-state-highlight" id="33">Days total</li>   
 </li> 
</ul>
</div

.CS页

 full.Visible = true;