ScriptManager.RegisterStartupScript

本文介绍在ASP.NET中如何使用ScriptManager控件来动态注册JavaScript代码。具体包括设置控件ID、指定控件类型、定义脚本名称及内容等步骤,并说明了何时将第五个参数设置为true。

 ScriptManager.RegisterStartupScript(this, this.GetType(), "alertScript", "window.open('default2.aspx');", true);
其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.
第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Q4_WEB { public partial class Q4_MAIN : System.Web.UI.Page { // 数据库连接字符串 private string connectionString = ConfigurationManager.ConnectionStrings["EaPumpConnectionString"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { // 页面首次加载时加载所有时段数据 LoadAllTimePeriods(); } } // 加载所有时段数据到Repeater控件 private void LoadAllTimePeriods() { using (SqlConnection conn = new SqlConnection(connectionString)) { string query = "SELECT dwsd, qshour, jshour FROM Eamain ORDER BY CASE dwsd WHEN '尖期' THEN 1 WHEN '峰期' THEN 2 WHEN '平期' THEN 3 WHEN '谷期' THEN 4 END, qshour"; SqlCommand cmd = new SqlCommand(query, conn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); conn.Open(); da.Fill(dt); conn.Close(); // 将数据绑定到Repeater控件 rptTimePeriods.DataSource = dt; rptTimePeriods.DataBind(); } } // 在Repeater数据绑定完成后处理时间显示 protected void rptTimePeriods_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e == null) { return; } if (e.Item == null) { return; } // 只处理数据项和交替数据项 if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) { return; } // 获取当前绑定的数据项 DataRowView rowView = e.Item.DataItem as DataRowView; if (rowView == null) { return; } // 获取控件 Label lblItemPeriodType = e.Item.FindControl("lblItemPeriodType") as Label; Label lblItemStartTime = e.Item.FindControl("lblItemStartTime") as Label; Label lblItemEndTime = e.Item.FindControl("lblItemEndTime") as Label; // 检查控件是否存在 if (lblItemPeriodType == null || lblItemStartTime == null || lblItemEndTime == null) { return; } // 设置时段类型 string dwsd = rowView["dwsd"].ToString(); lblItemPeriodType.Text = dwsd; // 设置开始时间 string qshour = rowView["qshour"].ToString(); lblItemStartTime.Text = qshour; // 设置结束时间 string jshour = rowView["jshour"].ToString(); lblItemEndTime.Text = jshour; } // 添加时段按钮点击事件 protected void btnAddPeriod_Click(object sender, EventArgs e) { try { // 获取输入值 string periodType = ddlPeriodType.SelectedValue; string startHour = ddlStartHour.SelectedValue; string startMinute = ddlStartMinute.SelectedValue; string endHour = ddlEndHour.SelectedValue; string endMinute = ddlEndMinute.SelectedValue; // 组合时间格式 string startTime = $"{startHour}:{startMinute}"; string endTime = $"{endHour}:{endMinute}"; // 检查是否存在相同时间段 bool exists = false; using (SqlConnection conn = new SqlConnection(connectionString)) { string query = "SELECT COUNT(*) FROM Eamain WHERE dwsd = @dwsd AND qshour = @qshour AND jshour = @jshour"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@dwsd", periodType); cmd.Parameters.AddWithValue("@qshour", startTime); cmd.Parameters.AddWithValue("@jshour", endTime); conn.Open(); int count = (int)cmd.ExecuteScalar(); conn.Close(); exists = (count > 0); } if (exists) { // 存在相同时间段,显示提示信息 ShowMessage("已添加该时段,请检查!", false); return; } // 添加新时段 using (SqlConnection conn = new SqlConnection(connectionString)) { string query = "INSERT INTO Eamain (dwsd, qshour, jshour) VALUES (@dwsd, @qshour, @jshour)"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@dwsd", periodType); cmd.Parameters.AddWithValue("@qshour", startTime); cmd.Parameters.AddWithValue("@jshour", endTime); conn.Open(); int rowsAffected = cmd.ExecuteNonQuery(); conn.Close(); } // 重新加载数据 LoadAllTimePeriods(); ShowMessage("时段已成功添加!", true); } catch (Exception ex) { ShowMessage("添加失败:" + ex.Message, false); } } // 删除时段按钮点击事件 protected void btnDelete_Click(object sender, EventArgs e) { try { Button btn = (Button)sender; RepeaterItem item = (RepeaterItem)btn.NamingContainer; // 获取要删除的时段信息 Label lblItemPeriodType = (Label)item.FindControl("lblItemPeriodType"); Label lblItemStartTime = (Label)item.FindControl("lblItemStartTime"); Label lblItemEndTime = (Label)item.FindControl("lblItemEndTime"); string periodType = lblItemPeriodType.Text; string startTime = lblItemStartTime.Text; string endTime = lblItemEndTime.Text; // 删除时段 using (SqlConnection conn = new SqlConnection(connectionString)) { string query = "DELETE FROM Eamain WHERE dwsd = @dwsd AND qshour = @qshour AND jshour = @jshour"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@dwsd", periodType); cmd.Parameters.AddWithValue("@qshour", startTime); cmd.Parameters.AddWithValue("@jshour", endTime); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } // 重新加载数据 LoadAllTimePeriods(); // 构建删除成功消息 string periodTypeName = GetPeriodTypeName(periodType); ShowMessage($"已删除{periodTypeName}时段:{startTime}到{endTime}", true); } catch (Exception ex) { ShowMessage("删除失败:" + ex.Message, false); } } // 保存所有时段按钮点击事件 protected void btnSaveAll_Click(object sender, EventArgs e) { try { // 由于时段列表现在是只读显示模式,保存所有按钮不再需要执行复杂操作 // 只需显示提示信息 ShowMessage("所有时段已保存!", true); } catch (Exception ex) { ShowMessage("保存失败:" + ex.Message, false); } } // 获取时段类型中文名称 private string GetPeriodTypeName(string periodType) { switch (periodType) { case "尖期": return "尖期"; case "峰期": return "峰期"; case "平期": return "平期"; case "谷期": return "谷期"; default: return periodType; } } // 显示消息 private void ShowMessage(string message, bool isSuccess) { // 直接在客户端脚本中设置模态框内容并显示,确保消息能正确显示 string safeMessage = message.Replace("'", "\\'"); string script = $@"$(function() {{ $('#messageModal .modal-body').html('<p>{safeMessage}</p>'); $('#messageModal').modal({{ show: true, backdrop: 'static' }}); }});"; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "showModal", script, true); } } }使用c#编程,为什么在删除时段信息后没有提示框
最新发布
12-09
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值