我正在使用带有一些文本框和下拉框的 Gridview。当用户单击一行(文本框或 DDL)时,我想弹出一个 Javascript 警报,告诉他们行号是什么。当用户单击其中一个文本框时,我可以触发一个事件,但我无法告诉他们它在警报中的哪一行,因为我似乎无法弄清楚如何将 C# 变量放入 Javascript警报。
这是我尝试过的:
public void gv_instruments_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txtBox1 = (TextBox)e.Row.FindControl("txt_partNumbers");
if (txtBox1 != null)
{
txtBox1.Attributes.Add("onclick", "javascript:alert('Message')"); //works
Int32 selectedRow = e.Row.RowIndex;//get row index number
string message = "You've selected row: " + selectedRow.ToString();
message = "javascript:alert('" + message + "')";
//txtBox1.Attributes.Add("onclick", message); //doesn't work
string title = "title";
//ScriptManager.RegisterStartupScript(Page, Page.GetType(),
title, "alert('" + message + "');", true); //doesn't work
//ScriptManager.RegisterClientScriptBlock(Page,Page.GetType(),
title, "alert('" + message + "');",true); //doesn't work
}
}
}
我在互联网上找到了使用该"javascript:alert('" + message + "')";
构造的页面,但它不起作用(或者至少我无法让它工作)。我一直很小心使用双引号和单引号,我可以在调试器中看到看起来像有效消息的内容(例如: javascript:alert('You've selected row: 0')
,我还认为“you've”中的撇号可能是问题所在,所以我删除了那个&用“你有”替换它,但这也不起作用。我可以开始工作的唯一结构是:
txtBox1.Attributes.Add("onclick", "javascript:alert('Message')");
我错过了什么?