我有一個日曆控件,我點擊一天給我一個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