C# - 在循环内调用相同的 javascript 函数
C# - Call the same javascript function inside a loop
美好的一天!
我正在尝试实现为每个假期更改 EXT Calendar 的日历单元格中的颜色(假期日期来自数据库)。但它只会更改数据库中第一行的第一个假期。
我的客户端代码:
var applyCss = function (param1) {
var css = "#CalendarPanel1-month-day-" + param1 + " {background-color: pink;}";
Ext.net.ResourceMgr.registerCssClass("someCssClassId", css);
};
我的服务器端代码:
DataTable holiday = Attendance.getInstance().getHolidays();
for (var i = 0; i < holiday.Rows.Count; i++)
{
var hd = holiday.Rows[i]["holiday_date"].ToString();
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "applyCss(" + hd + ")", true);
}
感谢任何建议/建议/解决方案。谢谢!
原因是每次回传只能调用Page.ClientScript.RegisterClientScriptBlock
一次。
我的建议:创建一个字符串来保存您想要 运行 的所有脚本,并在 Page.ClientScript.RegisterClientScriptBlock
中使用该字符串:
DataTable holiday = Attendance.getInstance().getHolidays();
string script = string.Empty;
for (var i = 0; i < holiday.Rows.Count; i++)
{
var hd = holiday.Rows[i]["holiday_date"].ToString();
script += " applyCss(" + hd + "); ";
}
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", script, true);
我的建议是不要在服务器端循环遍历单元格和 RegisterClientScriptBlock 函数,您可以将所有单元格集中在一个 'string array' 中并将其传递给客户端通过 RegisterClientScriptBlock 函数将 side 函数作为参数。
你的客户端函数的参数应该是字符串数组类型,你可以在客户端循环遍历这个数组来获取结果。
使用
X.AddScript("applyCss(" + hd + ")");
(但其他人提供的数组字符串附加方法也有效)
美好的一天!
我正在尝试实现为每个假期更改 EXT Calendar 的日历单元格中的颜色(假期日期来自数据库)。但它只会更改数据库中第一行的第一个假期。
我的客户端代码:
var applyCss = function (param1) {
var css = "#CalendarPanel1-month-day-" + param1 + " {background-color: pink;}";
Ext.net.ResourceMgr.registerCssClass("someCssClassId", css);
};
我的服务器端代码:
DataTable holiday = Attendance.getInstance().getHolidays();
for (var i = 0; i < holiday.Rows.Count; i++)
{
var hd = holiday.Rows[i]["holiday_date"].ToString();
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "applyCss(" + hd + ")", true);
}
感谢任何建议/建议/解决方案。谢谢!
原因是每次回传只能调用Page.ClientScript.RegisterClientScriptBlock
一次。
我的建议:创建一个字符串来保存您想要 运行 的所有脚本,并在 Page.ClientScript.RegisterClientScriptBlock
中使用该字符串:
DataTable holiday = Attendance.getInstance().getHolidays();
string script = string.Empty;
for (var i = 0; i < holiday.Rows.Count; i++)
{
var hd = holiday.Rows[i]["holiday_date"].ToString();
script += " applyCss(" + hd + "); ";
}
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myScript", script, true);
我的建议是不要在服务器端循环遍历单元格和 RegisterClientScriptBlock 函数,您可以将所有单元格集中在一个 'string array' 中并将其传递给客户端通过 RegisterClientScriptBlock 函数将 side 函数作为参数。
你的客户端函数的参数应该是字符串数组类型,你可以在客户端循环遍历这个数组来获取结果。
使用
X.AddScript("applyCss(" + hd + ")");
(但其他人提供的数组字符串附加方法也有效)