簡體   English   中英

ASP.NET通過后面的代碼將onclick添加到div

[英]ASP.NET add onclick to div via code behind

我正在使用ASP.NET,我希望能夠單擊<div>並將背景設置為一種顏色(以后可能是圖像)。 <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>的背景。

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>

而click事件在代碼后面。

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

它的工作速度比我想象的要快。 這就是我所做的。

我用這個:

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

然后我通過腳本使用它:

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

感謝所有的答復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM