使用javascript ASP.net c#的相关下拉列表

时间:2014-04-09 12:35:11

标签: c# javascript asp.net

对于我写过的ASPX页面

<script type="text/javascript" language="JavaScript">

            function OnSelectedIndexChange_tb_type() {
                ddl = document.getElementById("<%=tb_type.ClientID %>");
                ddl1= document.getElementById("<%=tb_diagnost_by.ClientID %>");

                var options = document.createElement("option");

                if (ddl.selectedIndex == 1) {

                    ddl1.options[0] = new Option("---Select---", "0");
                    ddl1.options[1] = new Option("Sputum", "Sputum");
                    ddl1.options[2] = new Option("CX Ray", "CX Ray");
                }
                else if (ddl.selectedIndex == 2) {
                    ddl1.options[3] = new Option("---Select---", "0");
                    ddl1.options[4] = new Option("Limph node", "Limph node");
                    ddl1.options[5] = new Option("CSF", "CSF");
                    ddl1.options[6] = new Option("Plural Fluid", "Plural Fluid");
                    ddl1.options[7] = new Option("Ascitic Fluid", "Ascitic Fluid");
                    ddl1.options[8] = new Option("Urine", "Urine");
                    ddl1.options[9] = new Option("Other", "Other");
                }
                else {
                    ddl1.options[10] = new Option("---Select---", "0");
                }
            }
        </script>

    <script type="text/javascript" language="JavaScript">

        function OnSelectedIndexChange_tb_diagnost_by() {

            ddl1 = document.getElementById("<%=tb_diagnost_by.ClientID %>");
            ddl2 = document.getElementById("<%=tb_diagnost_by_detail.ClientID %>");

            var options = document.createElement("option");

            if (ddl1.selectedIndex == 1) 
            {
                ddl2.options[0] = new Option("---Select---", "0");
                ddl2.options[1] = new Option("AFB", "AFB");
                ddl2.options[2] = new Option("Gene Xpert", "Gene Xpert");
            }
            else if {
                ddl2.options[3] = new Option("---Select---", "Select");
                ddl2.style.visibility = 'hidden';
            }
            else{
                 ddl2.options[4] = new Option("---Select---", "Select");
            }

         }
    </script>

但我收到了错误

无效的回发或回调参数。使用页面启用事件验证...

需要解决方案。请帮帮我...因为我是堆栈。

2 个答案:

答案 0 :(得分:0)

您可以在不通知aspx服务器的情况下添加新选项,即更改视图状态,因此您需要禁用事件验证,或使用更新面板并从服务器执行此操作。

答案 1 :(得分:0)

在您的下拉列表中添加事件监听器

<asp:DropDownList ID="DD1" runat="server" AutoPostBack="true" OnClick="DD1_Click" />

然后在您的.NET页面中 在顶部添加

using System.Web.UI.WebControls;

然后低于页面加载。

protected void DD1_Click(object sender, EventArgs e)
{
    var index = ((DropDownList)sender).SelectedIndex;
}

http://msdn.microsoft.com/en-us/library/58tf9b9h(v=vs.110).aspx

现在将您的javascript转换为.NET代码。 您可以在MVC中使用您的方法,但相信我在WebForms中,您已经为Mordor设置了自己的方法。