0

私はasp.netを初めて使用し、特別な問題があります。

いくつかのデータベース値からグリッドビューをロードする必要があります...

グリッドビューに2つの列があります。1つはラベル、もう1つはテキストボックスです。

ラベルの特別な値の場合、テキストボックスは複数行である必要があります。それ以外の場合、テキストモードは1行である必要があります。

誰かがこの問題を解決する方法を教えてもらえますか?

PS:私の質問が明確でない場合は私に知らせてください私は説明することができます

4

3 に答える 3

3

GridView.RowDataBound イベントを使用できます

次に値を見つけ、一致する場合はプロパティを変更できますTextMode

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

        }
于 2012-05-02T17:04:50.017 に答える
2

あなたは新しいと言ったので、バインドされたフィールドをテンプレートフィールドに変換する方法がわからない場合は、このチュートリアルに従ってください:

チュートリアル

テンプレート フィールドに変換したら、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;
}
}
}
于 2012-05-02T17:56:14.420 に答える
0

あなたはこの方法を試すことができます:

<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" Text='Sometext'
            TextMode="MultiLine"></asp:TextBox>
    </ItemTemplate>
</asp:TemplateField>
于 2012-05-02T16:49:18.787 に答える