私はasp.netを初めて使用し、特別な問題があります。
いくつかのデータベース値からグリッドビューをロードする必要があります...
グリッドビューに2つの列があります。1つはラベル、もう1つはテキストボックスです。
ラベルの特別な値の場合、テキストボックスは複数行である必要があります。それ以外の場合、テキストモードは1行である必要があります。
誰かがこの問題を解決する方法を教えてもらえますか?
PS:私の質問が明確でない場合は私に知らせてください私は説明することができます
私はasp.netを初めて使用し、特別な問題があります。
いくつかのデータベース値からグリッドビューをロードする必要があります...
グリッドビューに2つの列があります。1つはラベル、もう1つはテキストボックスです。
ラベルの特別な値の場合、テキストボックスは複数行である必要があります。それ以外の場合、テキストモードは1行である必要があります。
誰かがこの問題を解決する方法を教えてもらえますか?
PS:私の質問が明確でない場合は私に知らせてください私は説明することができます
GridView.RowDataBound イベントを使用できます
次に値を見つけ、一致する場合はプロパティを変更できます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;
}
}
}
あなたはこの方法を試すことができます:
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" Text='Sometext'
TextMode="MultiLine"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>