2016-11-15 1 views
0

나는 ASP.NET을 사용하고 있으며 <div>을 클릭하고 배경을 색상으로 설정하고 싶습니다 (나중에 이미지를 사용하는 것이 좋습니다). 이 <div>은 코드에 의해 생성 : 나는 방법 setBackground();을 만드는 시도했지만 나는 현재 <div> 클릭의 배경을 설정하는 방법을 알아낼 수없는 것ASP.NET 뒤에 코드를 통해 div에 onclick 추가

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; 
     } 
    } 

.

+1

setBackground의()를 자바 스크립트 또는 C#을 방법? – renefc3

+0

@ renefc3 상관 없어요, 모두 시도해보십시오. 선호 C#. –

+0

자바 스크립트를 사용하는 경우 false를 반환합니다. Div.Attributes.Add ("onclick", "setBackground(); false 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

div의 – VDWWD

+0

에 id를 추가 할 수 있습니다. 문제는 div의 양에 제한이 없다는 것입니다. x 및 y 축에서 생성되는 화면의 해상도에 따라 다릅니다. 그리고 사용자 환경 설정. –

0

생각보다 빨리 작동합니다. 이것이 내가 한 일이다.

나는이 사용 :

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

을 그리고 나는 스크립트를 통해이 사용

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

덕분에 모든 응답에 대한

관련 문제