button1.Attributes.Add(“onclick”,“javascript:window.open('page1.aspx?CheckedItem =”+ checkedItem.ToString()+“'');”);工作不正常

时间:2012-01-03 08:06:56

标签: c# javascript asp.net

我的客户端代码button1.Attributes.Add(“onclick”,“javascript:window.open('page1.aspx?CheckedItem =”+ checkedItem.ToString()+“','mywindow',');” );没有在第一次点击时执行。但是从第二次点击开始它工作正常。我在按钮点击事件中写了这段代码。

我曾试图把它放在page_load中,但问题是我需要从这个页面返回一个值。 这是代码

protected void btnPreview_Click(object sender, EventArgs e)
{

    //StringBuilder checkedItem = new StringBuilder();
    checkedItem.Length = 0;
    foreach (ListItem i in chkValidation.Items)
    {
        if (i.Selected)
        {
            if (string.IsNullOrEmpty(Convert.ToString(checkedItem)))
            {
                checkedItem.AppendFormat(i.Text);

            }
            else
            {
                checkedItem.AppendFormat(",");
                checkedItem.AppendFormat(i.Text);
            }
        }
        btn_Preview.Attributes.Add("onclick",
                                   "javascript:window.open('TimePhaseAttributePreview.aspx?CheckedItem=" + 
                                   checkedItem.ToString() + "','mywindow','menubar=0,resizable=0,width=350,height=250');");
    }

请帮帮我

2 个答案:

答案 0 :(得分:0)

将代码放入任何页面事件中。比如page_load,init ..或者使用RegisterClientScriptBlock

答案 1 :(得分:0)

您需要使用OnClientClick,而不是OnCLick

将您的代码更改为

button1.OnClientClick = "javascript:window.open('page1.aspx?CheckedItem=" + checkedItem.ToString() + "'
                        ,'mywindow',')";