【问题标题】:Filling GridView in javascript is not working and no error catched在 javascript 中填充 GridView 不起作用,也没有捕获到错误
【发布时间】:2016-12-15 13:27:58
【问题描述】:

好的,我正在尝试使用 javascript 填充 asp GridView。 webService调用成功,我可以正常检索数据了。但是当我想在我的 Grid 中显示它时,什么也没有发生。

Javascript 函数:

function SearchUsers() {
   AutoComplete.ShowLoginUserOnSearch("PL", "pi", "", "", "", 0, 20, onGetLoginUserSuccess);
  }

function onGetLoginUserSuccess(result) {
    alert(result[1].ProviderName);
    $("#grdvUserInfo").append("<tr><td>" + result[1].UserName +
           "</td><td>" + result[1].ProviderName + "</td></tr>");
    alert(result[1].UserName);
}

Asp.net:

<asp:GridView ID="grdvUserInfo"  AllowPaging="True" PagerSettings-
 Mode="NextPreviousFirstLast"  PageSize="20" runat="server" 
 AutoGenerateColumns="False" Width="700px" SkinID="grdMySite" 
 DataSourceID="ObjectDataSource1">

</asp:GridView>

两个警报都填充了正确的数据,可能是什么问题?

【问题讨论】:

    标签: javascript c# asp.net gridview


    【解决方案1】:

    HTML

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">script>
    <script type="text/javascript">
        $(function () {
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetCustomers",
                data: '{}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: OnSuccess,
                failure: function (response) {
                    alert(response.d);
                },
                error: function (response) {
                    alert(response.d);
                }
            });
        });
    
        function OnSuccess(response) {
            var xmlDoc = $.parseXML(response.d);
            var xml = $(xmlDoc);
            var customers = xml.find("Table");
            var row = $("[id*=gvCustomers] tr:last-child").clone(true);
            $("[id*=gvCustomers] tr").not($("[id*=gvCustomers] tr:first-child")).remove();
            $.each(customers, function () {
                var customer = $(this);
                $("td", row).eq(0).html($(this).find("CustomerID").text());
                $("td", row).eq(1).html($(this).find("ContactName").text());
                $("td", row).eq(2).html($(this).find("City").text());
                $("[id*=gvCustomers]").append(row);
                row = $("[id*=gvCustomers] tr:last-child").clone(true);
            });
        }
    <script>
    

    网络方法

    [WebMethod]
    public static string GetCustomers()
    {
        string query = "SELECT top 10 CustomerID, ContactName, City FROM Customers";
        SqlCommand cmd = new SqlCommand(query);
        return GetData(cmd).GetXml();
    }
    private static DataSet GetData(SqlCommand cmd)
    {
        string strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(strConnString))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataSet ds = new DataSet())
                {
                    sda.Fill(ds);
                    return ds;
    
                }
            }
        }
    }
    

    http://www.aspsnippets.com/Articles/Populate-ASPNet-GridView-by-binding-DataSet-Client-Side-using-jQuery-AJAX.aspx

    【讨论】:

      【解决方案2】:

      Asp.net

       <asp:GridView ID="grdvUserInfo"  AllowPaging="True" PagerSettings-
           Mode="NextPreviousFirstLast"  PageSize="20" runat="server" 
           AutoGenerateColumns="False" Width="700px" SkinID="grdMySite" 
           DataSourceID="ObjectDataSource1">
      
          </asp:GridView>
      

      功能

         function onGetLoginUserSuccess(result) {
              alert(result[1].ProviderName);
              $("#grdvUserInfo").append("<asp:TemplateField><ItemTemplate>" + result[1].UserName +
                     "</ItemTemplate></asp:TemplateField><asp:TemplateField><ItemTemplate>" + result[1].ProviderName + 
      "</ItemTemplate></asp:TemplateField>");
              alert(result[1].UserName);
          }
      

      【讨论】:

      • 表格永远不能嵌套在gridView中!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多