DataListの編集モードでにFindControl
-
09-09-2019 - |
質問
は、新しい.NET / C#のWeb begginnerとして、私はいつもアップトリップします。私の顔にBLAM -flat。ここに私の現在にFindControlの問題があります:
以下があります:私は.aspxページとフォームを持っている、そしてAJAXのUpdatePanelは、その中に私のDataList EditItemTemplateを持っている(DataList1)がある。
<EditItemTemplate>
<asp:Label ID="thumbnailUploadLabel" runat="server" text="Upload a new thumbnail image:"/><br />
<asp:FileUpload ID="thumbnailImageUpload" runat="server" />
<asp:Button ID="thunbnailImageUploadButton" runat="server" Text="Upload Now" OnClick="thumbnailUpload"/><br />
</EditItemTemplate>
の後ろに私のC#コードでは、私がするFileUploadオブジェクトのクリック時のコードを持っています:
protected void thumbnailUpload(object s, EventArgs e)
{
if (thumbnailImageUpload.HasFile)
{
//get name of the file & upload
string imageName = thumbnailImageUpload.FileName;
thumbnailImageUpload.SaveAs(MapPath("../../images/merch_sm/" + imageName));
//let'em know that it worked (or didn't)
thumbnailUploadLabel.Text = "Image " + imageName + "has been uploaded.";
}
else
{
thumbnailUploadLabel.Text = "Please choose a thumbnail image to upload.";
}
当然のように私はのFileUploadとラベルのための「オブジェクトのインスタンスに設定されていないオブジェクト参照」を取得しています。
OnClickイベントでそれらを扱う前に、これらのコントロールを見つけるための正しい構文は何ですか?
アイブにFindControlを使用する唯一の方法は、のようなものです。
ラベルthumbnailUploadLabel = DataList1.FindControl( "thumbnailUploadLabel")ラベルとして;
しかし、もちろん、これはエラー「オブジェクトのインスタンスに設定されていないオブジェクト参照」を投げています。すべてのヘルプは非常に高く評価されます。
(私もそれが簡単ににFindControlを使用して作ることになってそこに「再帰的」コードを見てきました。ハ!私はC#のでとても緑よ、私も自分のプロジェクトにそれらを組み込む方法がわからないこと。)
これを見て取るためのすべてに感謝します。
解決
私は、これは後半地獄の多くのことを知っているが、私は回答する質問を探していた....あなたは今ではそれを考え出している必要がありますが、それでも
あなたのコードでこれらの行を追加する場合は、
protected void thumbnailUpload(object sender, EventArgs e)
{
FileUpload thumbnailImageUpload =(FileUpload)DataList1.Items[DataList1.EditItemIndex].FindControl("thumbnailImageUpload");
Label thumbnailUploadLabel = (Label)DataList1.Items[DataList1.EditItemIndex].FindControl("thumbnailUploadLabel");
if (thumbnailImageUpload.HasFile)
{
//Your code here
}
else
{
thumbnailUploadLabel.Text = "Please choose a thumbnail image to upload.";
}
}
これは、あなたが編集している行のための適切なコントロールを見つけるだろう...
もするFileUploadと互換性がありませんアップデートパネルbeacuse更新パネルのうち、あなたのデータリストを保持します。あなたがしなければ、コードが実行されますが、それはいつもの偽としての thumbnailImageUpload.HasFile を表示します。の