使用C#和Javascript隐藏/显示html表
Hiding/Showing an html table with C# and Javascript
我正在使用ajax和C#开发网站。我几个月前开始学习这些语言,所以我并不总是确定完成任务的最佳实践是什么。
我有一个表单,其中某些控件需要根据用户的操作进行隐藏或显示。它一开始显示一个"id"字段(以及其他字段(,但如果用户不知道自己的id,他们会单击一个链接,导致"id"域隐藏,并显示一个包含其他控件和"查找"按钮的表。我目前正在使用Javascript来处理点击和隐藏/显示控件:
function showSearchTable() {
document.getElementById('IDNumberRow').style.display = 'none';
document.getElementById('DontKnowId').style.display = 'none';
document.getElementById('infoSearchTable').style.display = 'block';
}
单击"查找"按钮后,应用程序将尝试在数据库中查找附加信息,并将结果告诉用户。服务器调用的结果是,页面被重新加载,从而导致表再次隐藏。我的问题是:如果找不到电话号码,我想让表格保持可见,这样用户就可以更正任何错误。
我试着添加代码,使表隐藏在后面的代码中,这样后发就不会导致表变得不可见:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
infoSearchTable.Visible = false;
}
}
然而,由于该表现在包含属性runat="server"以便在c#代码中看到它,所以我似乎无法在javascript代码中引用它以使其在客户端可见。我尝试过这个javascript:
function showSearchTable() {
document.getElementById('IDNumberRow').style.display = 'none';
document.getElementById('DontKnowId').style.display = 'none';
var infoSearch = document.getElementById('<%=infoSearchTable.ClientID%>');
infoSearch.style.display = 'block';
}
以及表格的html:
<table id="infoSearchTable" runat="server">
....table rows/columns containing controls
</table>
但我收到一个错误,说"infoSearch"为null。
我认为我可以自己完成这两项任务(用Javascript设置隐藏表可见,但在返回时保持可见(,但我认为我的代码最终会变得更加复杂,尤其是当我刚接触ajax、.net和C#时。所以我在寻求建议-我走对了吗?我用错东西了吗?有别的办法吗?
if(!Page.IsPostBack)
{
infoSearchTable.Visible = false;
}
我认为这将停止将控件发送回客户端(因此为空引用(-尝试以下操作:
if(!Page.IsPostBack)
{
infoSearchTable.Attributes.Add("style", "display: none;");
}
您可以执行类似的操作
<table id="infoSearchTable" runat="server">
....table rows/columns containing controls
</table>
并且在后面的代码中
infoSearchTable.Attributes.Add("class", "yourclass");
在您的.css
中
.yourclass{display:none;}
将runat="server"
添加到元素后,必须通过JavaScript:中的ClientID
引用它
var table = document.getElementById("<%=infoSearchTable.ClientID%>");
if (table){
table.style.display = "none";
}
在ASP.NET中,当您使用runat=server
时,它会获取您的ID并将其修改为包含程序中的其他信息,我完全忘记了什么,但我认为主页面或命名空间或其他使其唯一的东西。您的getElementByID((需要更改为包括所有其他信息(查看页面上的源代码以获取实际ID(,或者使用JQuery之类的javascript框架,该框架具有用于查找页面上元素的高级选择器。
- Brightcove获取/显示HTML中的当前视频标题和描述
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 使用jqLite隐藏和显示html元素
- 如何在不打断标记的情况下突出显示html字符串中的文本
- JS来显示HTML标记
- 如果javascript打开/关闭,则隐藏和显示html代码
- 用javascript显示html表
- 显示HTML代码块
- Regex有助于突出显示html中匹配文本的角度过滤器
- 为什么WebBrowser控件在保存后不能正确显示HTML
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- 如何使用window.showModalDialog()显示HTML内容
- JavaScript if else 语句来显示 html 标签
- 使用 js 函数显示 HTML 表单的结果
- 如何在不点击的情况下突出显示 HTML 中的文本
- 如何隐藏和显示 html 输入文本和段落
- 使用 javascript 解析和显示 HTML 音频当前时间
- 有什么方法可以在HTML页面中显示HTML代码吗
- 在自动完成jqueryUi中显示html
- 单击并用CTRL+C复制值时高亮显示html表格单元格