-2

私は次のように文字列ビルダーを使用しています...

 protected void Page_Load(object sender, EventArgs e)
 {       
    System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
    sb.Append("<script language='javascript'>function Open() {"); 
    sb.Append(string.Format("window.open('Chat.aspx?rid={0}'",lstRooms.SelectedValue));
    sb.Append(, 'newwindow','toolbar=no,location=no,menubar=no,width=290,height=330,resizable=no,scrollbars=no,top=350,left=980,right=500'");return false;"); 
    sb.Append("}</script>"); 

    if (!ClientScript.IsClientScriptBlockRegistered("JSScriptBlock")) 
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), "JSScriptBlock", sb.ToString()); 
    }

    if (!ClientScript.IsClientScriptBlockRegistered("JSScriptBlock")) 
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), "JSScriptBlock", sb.ToString()); 
    }

    lblFacultyNo.Text = Session["User_Id"].ToString();
    lblUserType.Text = Session["User_Type"].ToString();

    pnlChat.Visible = false;        
}

今、私はこの行でエラーが発生しています....

 sb.Append(, 'newwindow','toolbar=no,location=no,menubar=no,width=290,height=330,resizable=no,scrollbars=no,top=350,left=980,right=500'");return false;"); 

このエラーが発生したのはどの間違いですか?すぐに解決するのを手伝ってください......ありがとう

4

5 に答える 5

3

"文字列には、アポストロフィではなく、引用符を使用する必要があり'ます。

于 2012-05-01T07:05:05.963 に答える
1

問題は、「.」を使用する必要がある文字列リテラルに ' を使用することです。 ' は文字に使用されます。

于 2012-05-01T07:06:02.990 に答える
0

の直前に二重引用符を入れるつもりだった場合はreturn false、エスケープする必要があります - 私が追加したバックスラッシュに注意してください

sb.Append(",newwindow','toolbar=no,location=no,menubar=no,width=290,height=330,resizable=no,scrollbars=no,top=350,left=980,right=500'\");return false;");

ただし、バランスが取れていないように見えます-一致する二重引用符が表示されません。

于 2012-05-01T07:05:40.337 に答える
0

4 行目の先頭に " がありません

于 2012-05-01T07:05:45.710 に答える
0

ここでは、構文の色付けがガイドになります。文字列の形式が正しくありません:

//sb.Append(,'newwindow','toolbar=no,location=no,menubar=no,width=290,height=330,resizable=no,scrollbars=no,top=350,left=980,right=500'");return false;");     
sb.Append(", 'newwindow','toolbar=no,location=no,menubar=no,width=290,height=330,resizable=no,scrollbars=no,top=350,left=980,right=500'\");return false;"); 

結局はどちらか

 right=500'\");return false;"); 

また

right=500');return false;"); 
于 2012-05-01T07:06:15.183 に答える