【问题标题】:Disable html input button from codebehind, after deleting a row删除一行后,从代码隐藏中禁用 html 输入按钮
【发布时间】:2013-08-15 01:26:32
【问题描述】:

我有一个 ASP.NET 网页,我在其中输入序列号,然后它会显示在下面的网格视图中。

如果我改变主意,我可以删除一行(序列号)。如果我的网格中有零行,我会让网格消失,但我也想让我的提交按钮也消失。

我该怎么做?我可以从:Sub Gridview1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs)

如果是这样,我已经尝试过了,但我似乎找不到与之配合使用的控件。
或者有没有其他办法?

HTML 示例:

<div style="width:800px; margin-right: 0px;" id="divMain" runat="server">
    <table stuff...>
        <input id="iSubmit" type="button" value="SubmitHere"/>
    </table>

【问题讨论】:

  • 通过添加 runat="server" 使按钮服务器端执行此操作,您可以通过其 id 在代码中获取按钮。
  • 如何删除行?
  • 您可以使用 Jquery/Javascript CSS 来完成,制作计算行数的功能。如果 row >0 将 css 按钮设置为 display: block; 否则 display: none;

标签: javascript html asp.net vb.net


【解决方案1】:

在后面的代码中可以显示或隐藏按钮

iSubmit.Visible = False

您必须确保添加 runat="server" 属性

<input id="iSubmit" type="button" value="SubmitHere" runat="server" />

因此,当您删除一行时,如果集合为空,则可以隐藏按钮。 添加新行时,如果按钮隐藏,则显示它。

【讨论】:

  • 好吧,这太容易了,太可怜了。起初我拥有所有服务器端控件,但后来我将提交按钮切换为 html,这样我就可以禁用所有按钮,这样用户就无法双击。遍历调试很棘手,我正在测试很多不同的方法并试图记住哪些有效,哪些无效。我以为我不再想要服务器端了,因为有些东西正在触发我不想。但我认为这没关系。自我注意:当 runat=server 时,它会在代码隐藏中触发页面加载,现在可以,因为我有一些标准。我会在一天结束时标记为已回答,以防万一。
【解决方案2】:

HTML 标记:

您需要将runat="server" 添加到您的按钮,以便它的ID 可以从代码隐藏中访问,就像上面提到的the_lotus

<input id="iSubmit" type="button" value="SubmitHere" runat="server" />

代码隐藏:

 1)   iSubmit.Visible = false; // This will hide the button

 2)   iSubmit.Style.Add("display", "none");// This will hide the button 

 3)   iSubmit.Enabled = false;//It disabled button, user can view but not able to click

【讨论】:

  • 这已经很晚了,但是很抱歉,没有。 “启用”不是 HTML 输入元素的有效属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 2022-09-28
相关资源
最近更新 更多