使用javascript无效,在DropdownLists的Selected index change事件上更改Gridview Textbox的visible属性为true

时间:2012-06-26 12:13:05

标签: javascript asp.net

当用户更改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);
}

当我更改dropdownlist时,调用index函数并且alert显示为null。

所以有人可以建议我做错了吗?

1 个答案:

答案 0 :(得分:0)

我认为你不想在getElementById电话中使用服务器端标签:

var v = document.getElementById(txtControl);