在C#asp.net vs 05上工作。我有一个要求,我必须在gridview上填写一些数据文本框,这些数据来自数据库,并使其成为只读
之后,用户无法在gridview模板字段中输入任何文本。如果我设置文本框Enabled=false
,那么我会丢失文本颜色,但我想显示文本颜色。只是文本框不可编辑。我只是希望用户无法在我的文本框中写任何内容。
答案 0 :(得分:9)
文本框中是否没有只读属性。
如果那样你可以使用
只读= “真”
为文本框。
如果您 使用标签 ,那么我更愿意使用。
要在标签内包装内容,您可以使用
word-wrap: break-word
在属性中选择列字段并在属性中。
在样式部分
下您可以为列提供 CssClass 。
如果您将CssClass指定为'TextStyle'
css看起来像这样
.TextStyle
{
color: #a9a9a9
}
在颜色属性中,为文本提供颜色名称,如“红色”或十六进制代码,如“#000000”。
答案 1 :(得分:4)
启用= “假”
答案 2 :(得分:0)
在GridView的行创建事件中为TextBox指定CSS。
答案 3 :(得分:0)
我使用CSS使标签看起来像文本框。
答案 4 :(得分:0)
这是我刚刚敲定的概念的快速证明。
<head runat="server">
<style>
.readTest
{
border: none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox runat="server" Text="Do something" ReadOnly="true"
ID="txtOne" CssClass="readTest"></asp:TextBox>
</div>
</form>
</body>
</html>
就个人而言,我会使用标签,但您可以编写一个自定义控件来呈现文本框或标签,具体取决于您的应用所处的状态。
答案 5 :(得分:0)
为什么每个人都坚持使用asp:标签来做这类事情?只是因为如果你不提供AssociatedControlId,它会呈现<span>
您应该考虑使用asp:Panel或可能asp:Literal或asp:PlaceHolder,因为它们可以让您更好地控制输出和更清晰的标记。
Panel会更好,因为这会将内容呈现在<div>
而不是PlaceHolder或Literal中,而不会添加任何额外的标记。
您在这里放置的内容是一个语义划分,因此应该真正标记为这样,默认情况下,<div>
被视为块显示类型,而不是内联({{ 1}})。
答案 6 :(得分:0)
我更喜欢使用文字或String()输出而不是使用控件将文本直接写入单元格。它有点清洁,有助于减少正在写入的ViewState的数量。要么是这样,要么为要添加的控件关闭ViewState。