私はASP.NET WebアプリケーションでListViewを持っています。ユーザーが編集ボタンをクリックすると、そのアイテムの特定の値に依存するテキストフィールドをポップアップします。しかし、私はListView1_ItemEditing()関数内のコントロールを見つけることができないようです。ListView ItemEditingでFindControl()を呼び出せません
私はMicrosoftのドキュメントとインターネット上のさまざまなヘルプスレッドを読んだことがありますが、その提案は私には当てはまりません。
ListViewItem item = ProductsListView.Items[e.NewEditIndex];
Label dateLabel = (Label)item.FindControl("DiscontinuedDateLabel");
私は()ListView1_ItemEditingでラベルを選択することができるようにしたい簡略化のために:これは私が見たものが一般的です。これは)(ListView1_ItemEditingのコードである:デバッグ、アイテム及びdebugLabelが共にNULLの場合ここ
protected void ListView1_ItemEditing(Object sender, ListViewEditEventArgs e)
{
DataBind(); //not sure if this does anything
ListViewItem item = ListView1.Items[e.NewEditIndex];
Label debugLabel = (Label)item.FindControl("label_editing");
debugLabel.Text = "Works";
}
はASP
<EditItemTemplate>
<asp:Label ID="label_editing" runat="server" Text="hello world"></asp:Label>
</EditItemTemplate>
あります。
UPDATE:私のロジックをItemDataBoundに移動して、自分のtr(テキストボックスを含む)がその特定のデータ項目にあるかどうかをチェックすることで、この問題を解決しました。以下のコード:
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Control tr_verizon = e.Item.FindControl("tr_verizonEdit");
Control tr_att = e.Item.FindControl("tr_attEdit");
if (tr_verizon != null)
{
//Control tb_meid = e.Item.FindControl("TextBox_Meid");
Label lbl_carrierId = (Label)e.Item.FindControl("lbl_carrierId");
if (lbl_carrierId == null)
{
Message.Text = "lbl_carrierId is null!";
}
else if (lbl_carrierId.Text.Equals(""))
{
Message.Text = "lbl_carrierId is empty!";
}
else
{
string recordId = lbl_carrierId.Text;
if (tr_verizon != null && tr_att != null)
{
if (lbl_carrierId.Text.Equals("1"))
{
tr_verizon.Visible = false;
tr_att.Visible = true;
}
else
{
tr_verizon.Visible = true;
tr_att.Visible = false;
}
}
}
}
}
}
申し訳ありませんが、お返事ありがとうございます。私が持っている問題を解決する最良のアプローチは何をお勧めしますか?私はSQLDataSourceを使用してSQL Serverからエントリのリストを取得しています。次に、ユーザーがエントリを編集したい場合は、その行に提供されているデータソースに基づいて追加の
他のプログラマーがこの問題を解決するのを助けてくれました。私は、今後同様の問題が発生する可能性がある他の誰かのために、OPにソリューションを投稿します。 – user1
これは解決策を提供しません。ちょうど説明。 –
あなたは
sender
オブジェクトをキャストする代わりに、インデックスであなたのListViewItemにアクセスしようと試みたことがありますか?出典
2012-04-23 16:15:42 SouthShoreAK
前に行ったよう
//今 'item'がnullであることを意味し、そのコントロールを見つけます。私はあなたがKafの答えを見たいと思うかもしれないと思う。 – SouthShoreAK
)まず、次のように:あなたは
出典
2012-11-12 09:57:33 Sven
関連する問題