Gridview文本框多行仅适用于单个案例

时间:2012-05-02 16:47:10

标签: c# asp.net datagridview

我是asp.net的新手,我有一个特殊问题,

我必须从某些数据库值加载gridview ...

我的gridview中有两列标签,另一列是文本框..

对于标签中的特殊值,文本框应该是多行的...对于其他情况,textmode应该是单行...

有人可以帮我解决这个问题吗?

PS:如果我的问题不明确,请告诉我,我可以解释一下

3 个答案:

答案 0 :(得分:3)

您可以使用GridView.RowDataBound Event

然后找到值,如果匹配,您可以更改属性TextMode

protected void GVRowDataBound(object sender, GridViewRowEventArgs e)
        {
            var txb= (TextBox) e.Row.FindControl("TextBoxID"); 

        }

答案 1 :(得分:2)

你说你是新的,所以如果你不知道如何将绑定字段转换为模板字段,请按照以下步骤进行操作:

Tutorial

一旦你转换为模板字段,然后在RowDataBound上这样做:

void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
foreach (GridViewRow gRow in GridView1.Rows)
{
TextBox myfieldtxt = gRow.FindControl("yourTxtBxID") as TextBox;
Label myLable = gRow.FindControl("yourLableID") as Label;

if(myLable.Text.Equals("XYZ"))
{
  myfieldtxt.TextMode = TextBoxMode.MultiLine;
}
else
{
 myfieldtxt.TextMode = TextBoxMode.Single;
}
}
}

答案 2 :(得分:0)

您可以尝试这种方式:

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" Text='Sometext'
            TextMode="MultiLine"></asp:TextBox>
    </ItemTemplate>
</asp:TemplateField>