2012-03-23 80 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