我正在使用ASP.NET 3.5和C#。
在我的页面上,我需要一个文本框,用户看不到它,但是当你查看页面源时它必须在那里,原因是,另一个名为Eloqua的程序将查看页面源代码必须得到该文本框的值。
将根据用户选择的内容填充该文本框的值。
因此,我无法将文本框属性设置为Visible = False,因为它不会在源HTML中,我也无法设置Enabled = False,因为我不希望用户看到文本框。 / p>
我是否可以使用某些属性使该文本框对用户隐藏但在页面源中仍然可见?
我的ASP.NET文本框
<asp:TextBox ID="txtTester" runat="server"></asp:TextBox>
答案 0 :(得分:22)
您可以使用隐藏字段。
<asp:HiddenField id="myHiddenInput" runat="server" />
就像文本框一样使用它。
答案 1 :(得分:10)
尝试使用隐形文本框而不是服务器端Visible属性:
myTextBox.Style.Add("visibility", "hidden");
// or :
myTextBox.Style.Add("display", "none");
答案 2 :(得分:8)
首先想到:你能用隐藏的字段吗?这将更合适(&lt; asp:hiddenfield ID =“blah”runat =“Server”/&gt;如果你想要一个.NET控件)。
如果应用程序不会采用该功能,但实际上只需将“style ='display:none;'”放在页面的代码前面。 Intellisense不会喜欢它,但它会很好地呈现(EG:&lt; asp:TextBox id =“txtField”style =“display:none;”runat =“server”/&gt;)
同样从代码隐藏中你可以做txtField.Attributes.Add(“style”,“display:none”);
或者您也可以给它一个CssClass“hidden”,它在CSS中被定义为“.hidden {display:none;}”
CSS类或仅使用隐藏字段将是我的建议。
答案 3 :(得分:3)
答案 4 :(得分:2)
如果它出于某种原因必须是文本框,只需用css隐藏它:
<input type="text" name="blah" style="display:none" />
答案 5 :(得分:2)
<强> CSS:强>
.hidden-div
{
display: none;
}
<强> HTML:强>
<div class="hidden-div">
<input ... />
</div>
它将导致您的输入被隐藏,但它将在源代码中可见。
编辑:对不起,我误解了。我以为你想要隐藏输入。但无论如何,只要用基本上任何东西替换输入都无关紧要。答案 6 :(得分:1)
通过在服务器端设置Visible =“false”将不会呈现控件。您应该使用asp:Hidden
或INPUT type="hidden"
。其他选项是使用CSS,通过设置display:none.
答案 7 :(得分:0)
为什么不使用隐藏字段:
<input type="hidden" name="blah" />
答案 8 :(得分:0)
如何使用CSS隐藏包含文本框的div:
.hidden {
position: absolute;
left: -9999px;
}
然后在你的页面中:
<div class="hidden">
<asp:TextBox ID="TextBox1" runat="server" Text="hi"></asp:TextBox>
</div>
希望这有帮助。
答案 9 :(得分:0)
简单,尝试创建一个CSS class
并将其附加到您的TextBox
上,如下所示:
CSS类样式
<style>
.Hide {
display:none;
}
</style>
使用CssClass="Hide"
<asp:TextBox ID="txtTester" runat="server" CssClass="Hide"></asp:TextBox>
注意:您不能通过
Hidden
控件使用验证