【发布时间】:2019-04-26 19:32:13
【问题描述】:
我想隐藏或显示我的网页部分。问题是css Id是在后面的代码中创建的。我不知道如何访问它们。任何帮助将不胜感激。
在函数 ShowColumn KanbanColum 中应该是 collapseSection0、collapseSection1 ....和 collapseSection collapseDiv0、collapseDiv1 ....但我无法访问它们。因为变量是在后台创建的。
protected void ShowColumn(object sender, EventArgs e)
{
kanbanColumn.Visible = true;
collapseSection.Visible = false;
}
public void PopulateLists(int numberOfColumns,List<string> lstColumnsNames, List<int> lstTaskPerColumns, List<string> lstTaskText, List<string> headerColorOptions)
{
HtmlGenericControl li;
string colorChosen;
for (int j = 0; j < numberOfColumns; j++)
{
System.Web.UI.HtmlControls.HtmlGenericControl CollapseDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
CollapseDiv.ID = "collapseSection" + j;
CollapseDiv.Attributes.Add("class", "collapsed-kanban");
CollapseDiv.Style.Add("background-color", "#f4ce46");
dragListColumns.Controls.Add(CollapseDiv);
ImageButton expanImage = new ImageButton();
expanImage.ImageUrl= "~/images/maximize.png";
expanImage.ID = "expandImageId" + j;
expanImage.Height = 20;
expanImage.Width = 20;
expanImage.Attributes.Add("class", "second-menu-icon");
expanImage.Attributes.Add("OnClick", "ShowColumn");
CollapseDiv.Controls.Add(expanImage);
Label lblCollapse = new Label();
lblCollapse.Text = lstColumnsNames[j];
lblCollapse.Attributes.Add("class", "vertical-text");
CollapseDiv.Controls.Add(lblCollapse);
}
}
我可以做些什么来使用我在后台创建的 cssId,或者有其他方法可以解决这个问题。非常感谢。
【问题讨论】:
-
有点不清楚你的意思。您究竟想在什么时候隐藏或显示此部分?使用Javascript,你在说什么?如果你总是给你的元素同一个类,那么你可以通过你的 Javascript 中的类来访问它们
-
我没有使用任何我想要的 javascript 点击按钮来隐藏或显示页面中的元素。使用 id.Visible=true/false。我将添加图像以使其更清晰。
-
我知道 ShowColumn 将在随后的回发中运行吗?您应该知道,像这样动态创建的元素不会在 ASP.NET Web 表单中的回发之间持续存在。下次运行您的代码时,它们将不再存在(至少不存在,除非您在尝试执行其他任何操作之前重新运行 PopulateLists 函数)。但老实说,如果它是一个简单的显示/隐藏动作,那么使用 JavaScript 会更加用户友好和高效,并且避免不必要地往返于服务器和返回这样一个简单的动作。
-
google "javascript 手风琴" 你会得到几十个例子。但也许先学习 JavaScript 教程并了解该语言。作为一名网络开发人员,如今这是一项至关重要的技能。