C# Gridview文本框多行仅适用于一种情况

C# Gridview文本框多行仅适用于一种情况,c#,asp.net,datagridview,C#,Asp.net,Datagridview,我是asp.net新手,我有一期特刊 我必须从一些数据库值加载gridview 我的gridview中有两列,一列是标签,一列是文本框 对于标签中的特殊值,文本框应为多行。对于其他情况,文本模式应为单行 有人能帮我解决这个问题吗 PS:如果我的问题不清楚,请告诉我,我可以解释您可以这样尝试: <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server"

我是asp.net新手,我有一期特刊

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

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

对于标签中的特殊值,文本框应为多行。对于其他情况,文本模式应为单行

有人能帮我解决这个问题吗

PS:如果我的问题不清楚,请告诉我,我可以解释

您可以这样尝试:

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

您可以这样尝试:

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

您可以使用

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

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

        }
你可以用

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

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

        }

您说您是新的,所以如果您不知道如何将绑定字段转换为模板字段,请遵循以下步骤:

转换为模板文件后,在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;
}
}
}

您说您是新的,所以如果您不知道如何将绑定字段转换为模板字段,请遵循以下步骤:

转换为模板文件后,在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;
}
}
}

我的问题是,当标签文本显示“xyz”时,文本框仅在一种情况下应为多行,而不是在所有情况下!!你能帮忙吗?是的,你可以用TemplateField而不是BoundField来显示数据。我的问题是,当标签文本显示“xyz”时,textbox只能在一种情况下是多行的,而不是在所有情况下!!你能帮忙吗?是的,你可以用TemplateField而不是BoundField来显示数据。非常感谢你的回复。。你能帮我捕获文本框并改变文本模式吗。。你可以使用gridview1.Findcontrol(Textbox1.textmode.)吗。。我的意思是,我怎样才能掌握我的文本框属性???非常感谢你的回复。。你能帮我捕获文本框并改变文本模式吗。。你可以使用gridview1.Findcontrol(Textbox1.textmode.)吗。。我的意思是我怎样才能掌握我的文本框属性???