javascript - 使用 C# 和 Javascript 隐藏/显示 html 表格

标签 javascript c# html asp.net html-table

我正在使用 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”为空。

我认为我自己可以完成这两项任务(使用 Javascript 设置隐藏表可见,但在回发时保持可见),但我认为我的代码最终会变得比必要的更复杂,尤其是当我我是 ajax、.net 和 C# 的新手。所以我正在寻求建议 - 我走在正确的轨道上吗?我用错东西了吗?还有其他方法吗?

最佳答案

if(!Page.IsPostBack)
{
    infoSearchTable.Visible = false;
}

我认为这将停止将控件发送回客户端(因此是空引用)- 尝试类似的操作:

if(!Page.IsPostBack)
{
    infoSearchTable.Attributes.Add("style", "display: none;");

}

关于javascript - 使用 C# 和 Javascript 隐藏/显示 html 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012209/

相关文章:

javascript - 带有/实时 View 端口的 HTML/CSS/Javascript IDE

javascript - 异步上传文件然后保存相关数据

c# - ReactiveUI:为什么在使用 TestScheduler 时必须在 "...Throttle..."中明确指定调度程序

jquery - 将滚动事件绑定(bind)到动态 DIV?

html - 如何使自动适应所有分辨率和所有屏幕 html 页面?

javascript - JSX 中的 JSX JSX 中的 Javascript

javascript - 使用 javascript 传递站点属性

c# - 数据网格中的复选框选中事件不触发wpf mvvm

c# - 有做笛卡尔积的好 LINQ 方法吗?

html - 网站在 iPhone 的屏幕右侧显示空白