2016-11-15 61 views
0

我使用ASP.NET,我希望能夠點擊<div>並將背景設置爲一種顏色(稍後優先考慮圖像)。這<div>由代碼生成:ASP.NET通過後面的代碼將onclick添加到div

public void generate (int[] _blocks, int _width, int _height, int _distance) { 
     int HorizontalBlocks = _blocks[0]; 
     int VerticalBlocks = _blocks[1]; 
     int top = 0; 
     int left = 0; 

     for (int i = 0; i < VerticalBlocks; i++) { 
      for (int x = 0; x < HorizontalBlocks; x++) { 
       System.Web.UI.HtmlControls.HtmlGenericControl Div = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV"); 

       Div.ID = "Box_" + x + "_" + i; 
       Div.Style.Add(HtmlTextWriterStyle.Width, _width.ToString() + "px"); 
       Div.Style.Add(HtmlTextWriterStyle.Height, _height.ToString() + "px"); 
       Div.Style.Add(HtmlTextWriterStyle.Top, top.ToString() + "px"); 
       Div.Style.Add(HtmlTextWriterStyle.Left, left.ToString() + "px"); 
       Div.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#848484"); 
       Div.Style.Add(HtmlTextWriterStyle.Position, "absolute"); 
       Div.Style.Add(HtmlTextWriterStyle.Cursor, "pointer"); 
       Div.Attributes.Add("runat", "server"); 
       Div.Attributes.Add("onclick", "setBackground();"); 

       grid.Controls.Add(Div); 

       left += _width + _distance; 
      } 

      left = 0; 
      top += _height + _distance; 
     } 
    } 

我曾嘗試創建方法setBackground();,但我似乎無法弄清楚如何設置的當前點擊<div>背景。

+1

的setBackground()是一個JavaScript或C#方法? – renefc3

+0

@ renefc3沒關係,都試過。最好是C#。 –

+0

如果使用javascript添加返回false; (「onclick」,「setBackground(); return false;」); – renefc3

回答

0

Panel控件是一個控件,它將其內容封裝在<div>中。你可以從後面的代碼改變它的屬性。

<asp:Panel ID="Panel1" runat="server"> 

    <%-- html content here --%> 

</asp:Panel> 

後面的代碼。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Panel1.BackColor = Color.Red; 
} 

如果你想改變背景顏色,你可以舉例來說做到這一點。

<style> 
    .myDiv { 
     width: 100px; 
     height: 100px; 
     border: 1px solid black; 
     background: inherit; 
    } 
</style> 

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"><div class="myDiv"></div></asp:LinkButton> 
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton1_Click"><div class="myDiv"></div></asp:LinkButton> 
<asp:LinkButton ID="LinkButton3" runat="server" OnClick="LinkButton1_Click"><div class="myDiv"></div></asp:LinkButton> 

而代碼後面的點擊事件。

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    LinkButton linkButton = sender as LinkButton; 
    linkButton.BackColor = Color.Green; 
} 
+0

每個div都有自己的ID。 –

+0

您可以將ID添加到div的 – VDWWD

+0

問題是,div的數量沒有限制。取決於屏幕分辨率x和y軸上正在生成多少。和用戶的喜好。 –

0

得到它比我想象的工作更快。這就是我所做的。

我用這個:

   Div.Attributes.Add("onclick", "div_click(this.id)"); 

然後,我通過腳本中使用此:

 <script> 
      function div_click(clicked_id) { 
       alert(clicked_id); 
      } 
     </script> 

感謝所有的答覆

相關問題