質問のコメントで聞いたことに返事がないのでいろいろ不明ですが・・・
SqlDataSource + ListView で Visual Studio のデザイナを使ってコードを自動生成させた状態、即ち、
(1) 編集モードになる前は全ての列・行で Label が配置されその名前は XxxxxLabel となる (Xxxxx は列名)。
(2) ある行の[編集]ボタンをクリックして編集モードにすると、当該行には TextBox が配置されその名前は XxxxxTextBox となる
・・・という状態であろうと想像してレスします。
ListView.editingにて、中身が空なのかどうかまで判別できているのですが、FindControlでTextBoxを探すことができません。
「ListView.editingにて」というのは、ListView.ItemEditing イベントの間違いでしょうが、Microsoft のドキュメントに、
"編集操作が要求されたときに、ListView の項目が編集モードになる前に発生します"
・・・と書いてある通り、そのイベントが発生した時点ではまだ当該行は編集できるようになっていません。つまり、上に書いた (1) の状態のままで、TextBox は存在しないので FindControl で探しても見つかるはずはありません。
編集モードに変わった後の他のイベントを利用する他なさそうです。
例えば、ListView.ItemDataBound であれば、その時点では編集モードになっていて、TextBox が配置されるので FindControl で目的の TextBox を見つけることができます。具体例は以下の通りです。
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
TextBox textBox = (TextBox)e.Item.FindControl("XxxxxTextBox");
if (textBox != null)
{
textBox.ReadOnly = true;
}
}
}