0

我在更新面板中有一个 gridview ,其中有一个 dropdownList 。我想访问值选定的项目以进行验证,但出现错误。

我曾经设法通过首先获取存在下拉列表的 gridview 的 id 并使用 dropdownList clientID 作为后缀来使其正常工作,但丢失了它,现在似乎无法完成它。

我通过查看生成的 HTML 源代码获取下拉列表的 clientId。

('<%= drpLstId.ClientID %>给我错误drpLstId 在当前上下文中不存在

这是生成aspx页面后为下拉列表生成的HTML。

<select name="ctl00$viewMain$grdView$ctl01$ddlNew" id="ctl00_viewMain_grdView_ctl01_ddlNew" class="ddl" style="width:70px;">
        <option value="0">Select</option>
            <option value="1">Option 1</option>
            <option value="2">Option 3</option>
            <option value="3">Option 3</option>
 </select>

这就是我所做的

 function validate()
    {
      var drpDownList= document.getElementById('ctl00_viewMain_grdView_ctl01_ddlNew');
       var drpDownListValue = drpDownList.options[drpDownList.selectedIndex].Text;

       alert(drpDownListValue );

    }

但这给了我undefined警告框中的错误

4

2 回答 2

1

您需要使用以下innerHtml文本而不是文本:

var drpDownListValue = drpDownList.options[drpDownList.selectedIndex].innerHTML;
于 2013-05-11T13:44:23.657 回答
1

您可以通过从服务器端注册js代码来获取控件ID

RegisterStartupScript("var drpDownList = " + drpLstId.ClientId);

然后在客户端,您可以获得内部 HTML

var drpDownListValue = drpDownList.options[drpDownList.selectedIndex].innerHTML;

查看 HTML 并获取客户端 ID,然后将其硬编码到您的代码中似乎不是一个好主意。

于 2013-05-11T13:51:21.100 回答