En tant que nouveau débutant Web .net/C#, je suis toujours dérangé lorsque j'essaie d'utiliser FindControl. Blam -flat sur mon visage. Voici mon problème actuel de FindControl:FindControl en mode d'édition DataList
J'ai une page .aspx et le formulaire, puis ajax UpdatePanel, à l'intérieur il y a mon DataList (DataList1) qui a un EditItemTemplate: qui a les éléments suivants:
<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>
dans mon code C# derrière je le code OnClick pour l'objet 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.";
}
Alors bien sûr, je reçois « référence d'objet non définie à une instance d'un objet » pour le FileUpload et l'étiquette.
Quelle est la syntaxe correcte pour trouver ces contrôles avant de les traiter dans l'événement OnClick?
La seule façon Ive utilisé FindControl est quelque chose comme:
étiquettethumbnailUploadLabel = DataList1.FindControl ("thumbnailUploadLabel") comme étiquette;
Mais bien sûr, cela lance l'erreur "Référence d'objet non définie sur une instance d'un objet". Toute aide est fortement appréciée.
(J'ai aussi vu le code 'récursif' qui est censé rendre plus facile l'utilisation de FindControl .. Ha! Je suis si vert chez C# que je ne sais même pas comment les incorporer dans mon projet.
Merci à tous pour votre attention.
Hey Pankaj, merci pour la réponse. Tard vaut mieux que jamais. J'ai fini par utiliser du code similaire à ce que vous avez posté ci-dessus. Oui, j'ai découvert le problème FileUpload à l'intérieur de UpdatePanel, donc j'ai résolu qu'une fois que je les ai découverts, ils ne jouent pas bien ensemble. Aussi - J'ai découvert NeatUpload par Dean Brettle (www.brettle.com) comme un objet de téléchargement Multi-File très élégant - en cas de besoin ... – Doug