2015-07-02 4 views
2

У меня есть .net страница, которая должна открыть новое всплывающее окно, когда определенные условия не выполняются в коде за файлом. У меня есть следующий код:Всплывающее окно не работает

private bool isValidPart(string partNo) 
{ 
    if (!string.IsNullOrEmpty(partNo)) 
    { 
     DataBase.DBManager dm = new DBManager(); 

     if (!Convert.ToBoolean(dm.ExecScalar("usp_getPart", partNo))) 
     { 
      string url = "test.aspx"; 
      string s = "window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');"; 
      ClientScript.RegisterStartupScript(this.GetType(), "script", s, true); 
      return false; 
     } 
    } 
    return true; 
} 

Я поставил точку останова и проверил его. Он попадает в линию, но всплывающее окно не открывается. Он просто перемещается в следующую строку и возвращает false.

Могу ли я узнать причину этого?


@ yog2411 Это код, который проверяет, что isvalidpart()

           private bool SetRowData() 
    { 
     int rowIndex = 0; 
     if (ViewState["CurrentData"] != null) 
     { 
      DataTable dtCurrentData = (DataTable)ViewState["CurrentData"]; 
      DataRow drCurrentRow = null; 
      if (dtCurrentData.Rows.Count > 0) 
      { 
       for (int i = 1; i <= dtCurrentData.Rows.Count; i++) 
       { 
        TextBox TextCustomerName = (TextBox)gvInventory.Rows[rowIndex].Cells[1].FindControl("txtCustomerName"); 
        TextBox TextPONumber = (TextBox)gvInventory.Rows[rowIndex].Cells[2].FindControl("txtPONumber"); 
        TextBox TextPartNumber = (TextBox)gvInventory.Rows[rowIndex].Cells[3].FindControl("txtPartNumber"); 
        TextBox TextQuantity = (TextBox)gvInventory.Rows[rowIndex].Cells[4].FindControl("txtQuantity"); 
        //TextBox TextReqShipDate = (TextBox)gvInventory.Rows[rowIndex].Cells[5].FindControl("txtReqShipDate"); 
        if (!isValidPart(TextPartNumber.Text)) 
         return false; 
        drCurrentRow = dtCurrentData.NewRow(); 
        drCurrentRow["RowNumber"] = i + 1; 
        dtCurrentData.Rows[i - 1]["CustName"] = TextCustomerName.Text; 
        dtCurrentData.Rows[i - 1]["PONum"] = TextPONumber.Text; 
        dtCurrentData.Rows[i - 1]["PartNum"] = TextPartNumber.Text; 
        dtCurrentData.Rows[i - 1]["Qty"] = TextQuantity.Text; 
        // dtCurrentData.Rows[i - 1]["ReqShipDate"] = TextReqShipDate.Text;      
        rowIndex++;      
       } 
       ViewState["CurrentData"] = dtCurrentData; 
       gvInventory.DataSource = dtCurrentData; 
       gvInventory.DataBind();} 
     } 
     SetPreviousData(); 
     return true; 
    } 
+2

любые ошибки в консоли ?? – rach

+0

Всплывающее окно не открывается, пока не завершится выполнение текущего 'Request'. Всплывающее окно не открывается, пока вы сидите на контрольной точке. Что произойдет, если вы включите этот код? –

+0

Может быть, на лицевой стороне какой-либо ошибки javascript> или вы используете updatepanel на странице –

ответ

0

попробовать написать функцию JS

function showMyPopUp(myUrl) { 
    //I have this settings and it works like a popUp, 
    //I just going to write the properties you have, but you can change them for these ones 
    //var CustomFeatures = 'titlebar=no, status=no,menubar=no,resizable=no,scrollbars=no,toolbar=no,location=no,width=300,height=100,top=100,left=100'; 
    var CustomFeatures = 'resizable=yes,width=300,height=100,top=100,left=100'; 
    window.open(myUrl, '_blank', CustomFeatures, true); 
} 

и в вашем C# этот

string url = "test.aspx"; 
string myCallfunction = "showMyPopUp('" + url + "');" 
ScriptManager.RegisterStartupScript(this, this.GetType(), "Funct", myCallfunction , true); 

надеюсь, что это поможет

Смежные вопросы