0

ある種のマップを描画するには、テーブルがあり、各セルに 1 つの ImageButton を動的に追加する必要があります。これまでのところ、問題ありません。しかし、いずれかのコントロールがクリックされたときに、すべてのコントロールの onmouseover カーソルを変更する必要があります。より正確には、カーソルがクリックされた ImageButton の ImageUrl になりたいと思います。これは png 形式です。

protected void Page_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 20; i++)
    {
        // Create new row and add it to the table.
        TableRow line = new TableRow();
        _DomainMap.Rows.Add(line);
        for (int j = 0; j < 30; j++)
        {
            // Create a new cell and add it to the row.
            TableCell cell = new TableCell();
            cell.ID = "_Case"+i+j;
            ImageButton domain_item = new ImageButton();
            domain_item.CssClass = "domainitem";
            domain_item.ImageUrl = "~/Images/empty.png";
            domain_item.Click += new ImageClickEventHandler(_DomainItem_Click);
            domain_item.ID = "_Image" + i + j;
            cell.Controls.Add(domain_item);
            line.Cells.Add(cell);
        }
    }
}

protected void _DomainItem_Click(object sender, EventArgs e)
{
    ChangeCursor(((ImageButton)sender).ImageUrl);
}

protected void ChangeCursor(String cursor_path)
{
    for (int i = 0; i < _DomainMap.Rows.Count; i++)
    {
        for (int j = 0; j < _DomainMap.Rows[i].Cells.Count; j++)
        {
            ImageButton imgb = ((ImageButton)_DomainMap.FindControl("_Image" + i + j));
            imgb.Attributes.Add("onmouseover", "setcursor(" + imgb + ", " + imgb.ImageUrl + ");");
        }
    }
}

そして「setcursor」JavaScript関数:

<script type="text/javascript">
    function setcursor(control, cur)
    {
        control.style.cursor = "url("+cur+")";
    }
</script>
4

0 に答える 0