2012-02-26 5 views
1

私はflicker APIでいくつかのテストを行っています。私は自分のコードでいくつかのコントロールを変更しました。ImageButtonとrunat = serverプロパティ

私が最初に画像を要求しようとしたとき、画像に保存されたすべてのものが素晴らしいですが、画像に他のものをしたいのでImageButtonクラスを使ってみましたが、 "server"プロパティ。

すべてのコントロールをプログラムで追加します。

私にとっては、クラスImageは何の賛辞もくれませんでしたが、彼から継承したクラスを使用していました。

私のqustionは:コントロールがrunat = "server"プロパティをC#コード経由で追加しているかどうかをチェックすることは可能でしょうか?

(私の英語のため申し訳ありません)ここ

は私のコードの一部です:

protected void Page_Load(object sender, EventArgs e) 
{ 

    string key = "*****************"; 
    string secret = "***********"; 
    MyFlicker myFlicker = new MyFlicker(key, secret); 
    int photoCount = myFlicker.coll.Count; 
    try 
    { 
     string[] urls = myFlicker.GetPhotosURLS(); 
     string[] desc = myFlicker.GetPhotosDescreptions(); 
     string[] Titels = myFlicker.GetPhotosTitle(); 

     Panel[] panels = new Panel[photoCount]; 
     ImageButton[] images = new ImageButton[photoCount]; 
     Label[] descreptions = new Label[photoCount]; 
     Label[] titles = new Label[photoCount]; 

     for (int i = 0; i < photoCount; i++) 
     { 
      panels[i] = new Panel(); 
      images[i] = new ImageButton(); 
      descreptions[i] = new Label(); 
      titles[i] = new Label(); 


      titles[i].Text = Titels[i] + ":כותרת התמונה"; 
      images[i].ImageUrl = urls[i]; 

      if (descreptions[i] != null) 
       descreptions[i].Text ="תיאור התמונה: " + desc[i]; 
      else 
       descreptions[i].Text = "descreption was not found!"; 

      panels[i].ID = "panel" + i; 
      images[i].ID = "image" + i; 
      descreptions[i].ID = "des" + i; 
      titles[i].ID = "titles" + i; 

      panels[i].Controls.Add((Label)titles[i]); 
      panels[i].Controls.Add((Label)descreptions[i]); 
      panels[i].Controls.Add((Image)images[i]); 
      this.Controls.Add((Panel)panels[i]); 




     } 


    } 

    catch (Exception ex) 
    { 
     Response.Write(ex.Message); 
    } 



} 

ここapsxです:このコードと同様の試験を行った後

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Copy_of_galleryControlTest_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    </div> 
    </form> 
</body> 
</html> 
+0

説明したエラーの正確な行はどのようなコードですか? –

+0

リピーターなどを使ってみませんか? –

+0

@ ShadowWizardそれはいくつかの共振と自分自身を試してキャッチするコードを教えてdosnt – samy

答えて

2

、私はこのエラーが発生しました

コントロール 'ctl03'タイプ 'Ima geButton 'はrunat = serverのフォームタグ 内に配置する必要があります。

はその後、私は

form1.Controls.Add((Panel)panels[i]); 

this.Controls.Add((Panel)panels[i]); 

から変更され、それが今で理にかなって...のImageButtonを提出するコントロール(フォームを提出するコントロール)であるので、この理由このエラーは、フォーム1の子である必要があり、その外にはありません。

もう1つの回避策は、このメソッドをオーバーライドすることですが、私は最初の1つを推奨します。

public override void VerifyRenderingInServerForm(Control control) 
{ 
    ; 
} 
+0

私はあなたが私を提供しているソリューションでコードを変更しましたが、それはまだ同じ例外とそのコードを試して、そのコードを使用しています。 – samy

+1

うんざり!すべての助けに感謝! – samy

関連する問題