我有一个日历控件,我点击一天给我一个JavaScript弹出窗口添加一个培训班。每天可能会有多个培训班。添加类是没有问题的。然后在另一个页面上,我已经得到了这个确切的日历控件,但是在每一天分别使用动态链接按钮填充了培训类。在点击链接按钮时,我想检索该培训班的ID,该培训班将用于填充标签,并在管理员为他/她的员工请求培训(插入到SQL中)时使用此ID作为参考。Onclick动态链接按钮没有触发
我已经尝试添加一个EventHandler,但这不是解雇。我试着对这个linkbutton使用Click属性(但不能调用属性的方法)......我不确定是否错过了事件处理程序没有发射的东西,有没有人可以帮我解决这个问题?
这是我做了什么: DayRendering日历控件的:
protected void calSchedule_DayRender(object sender, DayRenderEventArgs e)
{
bool result = false;
string filterstring = "SELECT tos.[ID], sc.ServiceCenter, tos.Description " +
"FROM [SOS].[dbo].[TrainingOfficerSchedule] tos " +
"INNER JOIN [dbo].[TrainingOfficerServiceCenters] sc " +
"on tos.ServiceCenterRef = sc.ID " +
"WHERE TrainingDate = @TrainingDate";
cn = new SqlConnection(GetConnectionString());
SqlCommand myCmd = new SqlCommand(filterstring, cn);
myCmd.Parameters.AddWithValue("@TrainingDate", e.Day.Date.ToShortDateString());
cn.Open();
SqlDataReader myReader = myCmd.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
{
string training = myReader["ServiceCenter"].ToString() + " - " + myReader["Description"].ToString();
LinkButton lnk = new LinkButton();
lnk.ID = myReader["ID"].ToString();
lnk.ForeColor = Color.FromArgb(64, 64, 64);
lnk.BackColor = Color.FromArgb(192, 192, 192);
lnk.Attributes.Add("onclick", "return getItems();");
lnk.Click += new EventHandler(lnk_Click);
//lnk.Attributes.Add("onClick", "return getItems();");
//lnk.Attributes.Add("OnClientClick", "return getItems();");
//lnk.Attributes.Add("onclick", jsMethod(Convert.ToInt32(myReader["ID"])));
//lnk.Click += new EventHandler(this.lnk_Click);
//lnk.Atributes.Add("runat", "server");
//lnk.Attributes.Add("onclick", jsMethod(myReader["ID"].ToString()));
lnk.Text = training + "<br/><br/>";
lnk.Style.Add("cursor", "pointer");
e.Cell.Controls.Add(lnk);
}
}
cn.Close();
}
事件处理程序上LinkButton的点击,当火:
public void lnk_Click(object sender, EventArgs e)
{
string ctrlId = ((Control)sender).ID;
txtMManagerName.Text = ctrlId;
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "popSchedular", "showSchedular();", true);
}
有可能什么我做错了什么?
这个问题可能是因为getItems返回false,从而导致代码从火灾中解脱出来。首先注释掉这行lnk.Attributes.Add(“onclick”,“return getItems();”);看看它是否不会开火。 – Bayeni
@ Bayeni,谢谢我删除了这行,但它仍然没有发射.... – Kerieks