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