2012-03-23 157 views
0

我把一個變量命名編號和它保持它來自DB (id = row[3].ToString();)我怎樣才能把我的ImageButton的值,以C#功能

然後我類耶爾德茲的ID分配給「ID」然後我試圖傳遞值C#函數,但我不能這樣做。

當點擊事件中id值爲「id」(我嘗試的代碼是(string id = objImage.UniqueID; objImage.ID)),但實際上它必須是「26」,其值爲 來自db,但它不是。

其實我的問題處理在C#中端的數據。我也試過commandarguments,但我不能做到這一點,有什麼辦法可以解決這個問題?感謝..

 id = row[3].ToString(); 
    %> 

<div class="sag-re">- 
      <div class="sag-re-baslik" runat="server"><asp:HyperLink ID=baslik runat="server">HyperLink</asp:HyperLink></div> 
       <!--<div class="sag-re-resim"><img src="images/rss-image.jpg" width="120" height="120" /></div>--> 
      <div class="sag-re-icerik" id = icerik runat="server">Lorem ipsum dolor sit amet, , arcu nec viverra mollis, turpis neque feugiat massa, non dapibus neque nunc ac orci. </div> 
      <div class="oy-verme"> 
       <!-- <body onload="getDivs()"> --> 

      <!-- <input type="image" 
      src="images/yildiz.png" 
      ID="ImgButton"         
       runat="server" OnServerClick="ImgButton_ServerClick" />--> 
       <% for (j = i * 5 + 1; j < (i *5)+6; j++) 
     { 

      //Imageid = "Img" + j; 

         %> 
         <div class="yildiz"><asp:ImageButton ID= id runat="server" Height="19px" 
         ImageUrl="~/images/yildiz.png" OnClick="ImageButton2_Click" Width="20px" 
         style="position: relative; top: 13px; left:6px; float:left; " /></div> 


     <% } %> 

這是C#側

protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton objImage = (ImageButton)sender; 
     string id = objImage.UniqueID; 

    /* if (e.CommandName == "Comment") 
     { 
      string[] commandArgs = e.CommandArgument.ToString().Split(new char[] { ',' }); 
      string scrapid = commandArgs[0]; 
      string uid = commandArgs[1]; 
     } */ 


     // string s= Imageid.UniqueID.ToString(); 
     //this.baslik2.Text = s; 

    } 

回答

1

您正在設置ID = ID,這就是爲什麼我認爲你正在讀回爲「ID」的字符串...我想你真正想要做的是設置這樣的:

ID = <%= ID%>

編輯:

個是的,正如我預料到在這種情況下,它不工作...

我把它改造,以如下:

<asp:Panel id="test" class="yildiz" runat="server"></asp:Panel> 

和Page_Load中:

protected void Page_Load(object sender, EventArgs e) 
{ 
    var i = 2; 

    var id = 2; 

    for (var j = i * 5 + 1; j < (i *5)+6; j++) 
     { 

       var imagebutton = new ImageButton(); 
       imagebutton.ID = id.ToString(); 
       imagebutton.ImageUrl = "https://www.google.com/logos/2012/juan_gris-2012-hp.jpg"; 
       imagebutton.Style.Add("position","relative"); 
       imagebutton.Style.Add("top","13px"); 
       imagebutton.Style.Add("left","6px"); 
       imagebutton.Style.Add("float","left"); 
       test.Controls.Add(imagebutton); 

     } 
} 

然而,有此錯誤:

Multiple controls with the same ID '2' were found. FindControl requires that controls have unique IDs.

然而,這將工作:

protected void Page_Load(object sender, EventArgs e) 
{ 
    var i = 2; 

    var id = 2; 

    for (var j = i * 5 + 1; j < (i *5)+6; j++) 
     { 

       var imagebutton = new ImageButton(); 
       imagebutton.Attributes.Add("custom-id", id.ToString()); 
       imagebutton.ImageUrl = "https://www.google.com/logos/2012/juan_gris-2012-hp.jpg"; 
       imagebutton.Style.Add("position","relative"); 
       imagebutton.Style.Add("top","13px"); 
       imagebutton.Style.Add("left","6px"); 
       imagebutton.Style.Add("float","left"); 
       imagebutton.Click += new ImageClickEventHandler(imagebutton_Click); 
       test.Controls.Add(imagebutton); 

     } 
} 

void imagebutton_Click(object sender, ImageClickEventArgs e) 
{ 
    ImageButton objImage = (ImageButton)sender; 
    objImage.Attributes["custom-id"]; 
} 
+0

當我把代碼,但它在aspx方面給出語法錯誤 – leventkalay92 2012-03-23 12:30:21

+0

我更新了答案的東西,工作...生成的控件在page_load中完成,並且aspx具有class =「yildiz」控件作爲服務器控件...我所做的主要事情是設置自定義ID的自定義屬性... – Timmerz 2012-03-23 13:25:28