Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改Gridview文本框';DropDownList上的可见属性true false';s使用javascript的选定索引更改事件不起作用_Javascript_Asp.net - Fatal编程技术网

更改Gridview文本框';DropDownList上的可见属性true false';s使用javascript的选定索引更改事件不起作用

更改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

当用户更改Dropdownlists selectedIndexchange事件时,我将使Gridview的文本框可见true或false,我已经完成了以下代码

我的.CS文件代码如下:

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是什么?