有谁能告诉我如何从c#传递javascript的参数?
我使用this.Page.ClientScript.RegisterClientScriptBlock
,但它没有调用方法。
SqlDataAdapter da = new SqlDataAdapter();da = o1.viewThisAddMoreFields(Convert.ToInt32(id));
DataTable dt = new DataTable();
da.Fill(dt);
int count = dt.Rows.Count;
for (int i = 0; i < count; i++)
{
extraFieldName[i] = dt.Rows[i]["FieldName"].ToString();
extraFieldValue[i] = dt.Rows[i]["FieldValue"].ToString();
}
for (int i = 0; i < count; i++)
{
ModalPopupExtender1.Hide();
ModalPopupExtender2.Hide();
Page.ClientScript.RegisterArrayDeclaration("ExtraFName", "extraFieldName[i]");
Page.ClientScript.RegisterArrayDeclaration("ExtraFValue", "extraFieldValue[i]");
Page.ClientScript.RegisterArrayDeclaration("totalCount", "count");
// ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript: moreFieldsEditFunction(); ", true);"+extraFieldName[i].ToString()+","+extraFieldValue[i].ToString()+"
}
for (int i = 0; i < count; i++)
{
// ClientScript.RegisterStartupScript(GetType(),"Javascript", "javascript: moreFieldsEditFunction('Hai','Hello');", true);
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "xx", "<script>moreFieldsEditFunction(" + extraFieldName[i] + "," + extraFieldValue[i] + ");</script>");
}
Javascript代码是:
function moreFieldsEditFunction(extrafname,extrafvalue) {
alert(extrafname + "test" + extrafvalue + "Helloooooo");
}
这种格式是否正确?
我可以使用单个参数调用,但是当传递两个参数时,它无法正常工作。任何语法错误?
答案 0 :(得分:1)
将名称用单引号传递,因为字符串变量需要在引号中传递。
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "xx", "<script>moreFieldsEditFunction('" + extraFieldName[i] + "','" + extraFieldValue[i] + "');</script>");