使用ASP中的值填充Popup:DropDownList证明是困难的

时间:2014-05-09 11:37:49

标签: javascript asp.net vb.net html.dropdownlistfor

这是我目前使用的Javascript,用于选择要在弹出窗口中显示的Monitor选择值:

        var theMonitor = document.getElementById("ctl00_ContentPlaceHolder1_MonitorInductionDDL");
        var strUser = theMonitor.options[theMonitor.selectedIndex].text;

这是实际的下拉列表代码:

<tr>
            <td nowrap="nowrap" style="width:132px">
                Monitor?</td>
            <td nowrap="nowrap" style="width:464px">
                <asp:DropDownList ID="MonitorInductionDDL" runat="server" Height="25px"
                    Width="334px" >
                    <asp:ListItem Selected="True" Value="0">Yes</asp:ListItem>
                    <asp:ListItem Value="1">No</asp:ListItem>
                </asp:DropDownList>
                </td>
        </tr>

这是我的VB.NET代码,用于指定要显示的值(以及我认为它应该做的事情):

Dim Upload As Button
        Upload = e.Row.FindControl("UpdateInduction")
        Cell1 = e.Row.DataItem("Description").ToString
        Cell2 = e.Row.DataItem("Id").ToString
        Cell3 = e.Row.DataItem("Monitor").ToString
        Upload.OnClientClick = String.Format("Javascript:ShowPopup('uploadPopup', '{0}', '{1}', '{2}');", Cell1, Cell2, Cell3)

这是弹出窗口的图片:

enter image description here

您可能已经注意到我在后台点击了“更新”按钮,可以通过“辞职”中的更新按钮触发此弹出窗口。监视器所在的行是“否”&#39;但这显示为是......

所以我的问题是,如何让弹出窗口Monitor中的Dropdownlist成为该列中任何内容的值?

老实说,我不知道我在哪里出错了这么快的帮助和指导会很好,谢谢你。

2 个答案:

答案 0 :(得分:1)

我认为错误在第二行,您从ddl的选定文本中获取值。但你必须为它设置值,如下所示。

而不是

var theMonitor = document.getElementById("ctl00_ContentPlaceHolder1_MonitorInductionDDL");
    var strUser = theMonitor.options[theMonitor.selectedIndex].text;

将以下代码

function showpopup(str1,str2,str3)
{
var theMonitor = document.getElementById("ctl00_ContentPlaceHolder1_MonitorInductionDDL");
    theMonitor.options[theMonitor.selectedIndex].text= str3;
}

答案 1 :(得分:0)

添加JavaScript调试器断点以检查单击网格后获得的值。如果你得到“没有”&#39;并且仍然无法将下拉菜单的选定文本/值设置为“否”&#39;,请确保没有前导/尾随空格。

我遇到了这种情况。