javascript - 使用带有 sql server 字段的 c#、javascript 和 HTML 在 <select> 元素中添加项目

标签 javascript c# html sql-server

谁能帮我解决这个问题。我只想使用 c# 和 javascript 在带有数据库字段的 html 元素中添加一个项目,但我的代码没有输出。此外,我尝试输入一个按钮并在按钮的 onClick 属性上调用函数“loadGrp”。例如:input type="submit"value="Add Item"onClick ="loadGrp();"但它也不起作用。如何解决这个问题,我知道有人有能力解决这个问题,所以请帮帮我伙计们..

JS

function loadGrp()
{
    $.ajax({
        type: 'POST',
        url: '../WebService/wsLeaveRequest.asmx/LoadGroup',
        dataType: 'json',
        //data: '',
        contentType: 'application/json; charset=utf-8',
        success: function (response){
            $('#cboGroup').empty();
            var cell = eval("(" + response.d + ")");
            for (var i = 0; i < cell.length; i++)
            {
                $('#cboGroup').append('<option value="' + cell[i].grpID + '">"' + cell[i].grpShortName + '</option>');
            }
        },
        error: function (error) {
            console.log(error);
        },
        complete: function () {

        }
    });
}

C#

  [WebMethod]
    public string LoadGroup()
    {
        List<GroupInfo> mylist = new List<GroupInfo>();
        using (SqlConnection conn = new SqlConnection(connectionString()))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand("spLoadGroup", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandTimeout = 0;
            SqlDataReader dr = cmd.ExecuteReader();

            while(dr.Read())
            {
                mylist.Add(new GroupInfo
                {
                    grpID = dr["groupID"].ToString(),
                    grpShortName = dr["groupShortName"].ToString()
                });
            }
            dr.Close();
            conn.Close();
        }
        JavaScriptSerializer js = new JavaScriptSerializer();
        string jsn = js.Serialize(mylist);
        return jsn;
    }

HTML

<!DOCTYPE html>
<html>
        <script src="Script/jsSetting.js"></script>
        <script src="Script/jsleaverequest.js"></script>

                    <div class="row cells12">
                        <div class="cell colspan3">
                            <div class="input-control select full-size">
                                <h5>Filter Group:</h5>
                                <select id="cboGroup"></select>
                            </div>
                        </div>
                    </div>
                </div>
<body>
<head>

</head>
</body>
</html>

最佳答案

这里有几个观察结果

  1. url: '../WebService/wsLeaveRequest.asmx/LoadGroup',

    .. 在这里可能没有任何意义

  2. 如果页面中没有表单,则将 input type = "submit" 替换为 input type = "button"

  3. var cell = eval("("+ response.d + ")"); 似乎有问题。使用 eval 不是一个好主意,特别是在这里它似乎没有任何意义。

将调试器或日志语句放在 function loadGrp 的第一行,然后查看函数是否在单击按钮时执行。然后从开发人员窗口检查(对于 Chrome,按 f12 -> 点击网络 -> 点击输入类型 = 按钮)并验证它是否正在进行任何网络调用并验证它的响应

关于javascript - 使用带有 sql server 字段的 c#、javascript 和 HTML 在 <select> 元素中添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663444/

相关文章:

javascript - 函数调用其他函数练习我被难住了

javascript - 在map.arc()中循环Json对象

javascript - 如果从一个选择和另一个选择中选择选项,则显示 div 元素

c# - ASP.NET AJAX ColorPickerExtender 客户端工作正常,代码隐藏颜色为空

C# 两个数组的相似之处

c# - .NET 简单聊天服务器示例

javascript - Css双窗口滚动

html - 如果在 UIWebView 中加载网页,iOS 6 "HTML Input file tag"不起作用

javascript - 功能组件和对象迭代

javascript - 使用 HTML5 视频禁用自动播放和显示控件