更改Gridview文本框';DropDownList上的可见属性true false';s使用javascript的选定索引更改事件不起作用
当用户更改Dropdownlists selectedIndexchange事件时,我将使Gridview的文本框可见true或false,我已经完成了以下代码 我的.CS文件代码如下:更改Gridview文本框';DropDownList上的可见属性true false';s使用javascript的选定索引更改事件不起作用,javascript,asp.net,Javascript,Asp.net,当用户更改Dropdownlists selectedIndexchange事件时,我将使Gridview的文本框可见true或false,我已经完成了以下代码 我的.CS文件代码如下: protected void gvTaskList_RowDataBound(object sender, GridViewRowEventArgs e) { try { if (e.Row.RowType == DataControlRowTyp
protected void gvTaskList_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HiddenField hdn = (HiddenField)e.Row.FindControl("hdnStatus");
DropDownList ddl = (DropDownList)e.Row.FindControl("ddlStatus");
TextBox txt = (TextBox)e.Row.FindControl("txtVal");
if (ddl != null)
{
ddl.Items.Add("Not Started");
ddl.Items.Add("In Progress");
ddl.Items.Add("Complete");
if (hdn != null)
{
ddl.SelectedValue = hdn.Value;
}
//ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
ddl.Attributes.Add("onChange", "return myFun(" + "'" + txt.ClientID + "'" +");");
}
}
}
catch (Exception ex)
{
Utility.ErrorList("EmpTaskList--RowdataBound", ex.ToString());
}
}
注意:我的组合框和文本框都在EditTmplate中
Javascript代码如下所示
<script type="text/javascript">
function myFun(txtControl) {
var v = document.getElementById("<%=" + txtControl + "%>");
alert(v);
}
函数myFun(txtControl){
var v=document.getElementById(“”);
警戒(五);
}
当我更改dropdownlist时,会调用索引函数,并且警报显示为null
那么,有人能告诉我我做错了什么吗?我认为您不希望在
getElementById
调用中使用服务器端标记:
var v = document.getElementById(txtControl);
如果
txtControl
是传递给myFun的变量,我认为您不需要这些(“您可以检查这个和这个吗。您是在rowdatabound中执行此操作的)您确定这个(文本框)e.Row.FindControl(“txtVal”)
为您带来了anyrhing?控件可能没有呈现,我不确定,但请尝试Page_Init或其他方法。页面中呈现了什么?您尝试了txtControl上的警报吗?好的,我们已经确定getElementById
没有返回任何内容。txtControl如何?您传递了正确的id吗?顺便问一下,警报是什么当您将文本框作为参数发送给它时,d是否显示Noonan先生?您不是发送“文本框”,而是发送文本框的ID。发送的ID是什么?