使文本框不可编辑

时间:2009-09-22 11:53:55

标签: asp.net

在C#asp.net vs 05上工作。我有一个要求,我必须在gridview上填写一些数据文本框,这些数据来自数据库,并使其成为只读

之后,用户无法在gridview模板字段中输入任何文本。如果我设置文本框Enabled=false,那么我会丢失文本颜色,但我想显示文本颜色。只是文本框不可编辑。我只是希望用户无法在我的文本框中写任何内容。

7 个答案:

答案 0 :(得分:9)

文本框中是否没有只读属性。

如果那样你可以使用

只读= “真”

为文本框。

如果您 使用标签 ,那么我更愿意使用。

要在标签内包装内容,您可以使用

word-wrap

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:Literalasp:PlaceHolder,因为它们可以让您更好地控制输出和更清晰的标记。

Panel会更好,因为这会将内容呈现在<div>而不是PlaceHolder或Literal中,而不会添加任何额外的标记。

您在这里放置的内容是一个语义划分,因此应该真正标记为这样,默认情况下,<div>被视为块显示类型,而不是内联({{ 1}})。

答案 6 :(得分:0)

我更喜欢使用文字或String()输出而不是使用控件将文本直接写入单元格。它有点清洁,有助于减少正在写入的ViewState的数量。要么是这样,要么为要添加的控件关闭ViewState。