GrpSMK Ответов: 0

Установка количества строк для отображения в HTML таблице в соответствии с выпадающим выбором


Как установить количество строк для отображения в HTML-таблице в соответствии с выпадающим выбором в ASP.Net (C#) использование jQuery и json (метод вызова ajax)?

Уже сделанный:
Отображение таблицы на основе выпадающего выбора.теперь та же таблица должна отображать разбиение на страницы из другого выпадающего списка(количество записей на странице).здесь также придется использовать jquery, json.

Что я уже пробовал:

страница ASPX

<script type="text/javascript">
        function funChangeTable(ddlObj) {
            var name = ddlObj.value;
            debugger;
            $.ajax({
                url: 'JsonLast.aspx/GetTableData',
                data: JSON.stringify({ tableName: name }),
                type: 'post',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(response) {
                    debugger;
                    var json = JSON.parse(response.d);
                    generateTable(json);
                },
                error: function(a, b, c) {
                    console.log(a, b, c);
                }
            });
        }
 
        function generateTable(json) {
         
            var $table = $('#tblDynamic');
            $table.find('thead').empty()
            $table.find('tbody').empty()
            if (json && json.length > 0) {
                var header = json[0];
                var columns = [];
                for (var col in header) {
                    columns.push('<th>' + col + '</th>');
                }
                $table.find('thead').append('<tr>' + columns.join('') + '</tr>');
                debugger;
                var rows = [];
                for (var i = 0; i < json.length; i++) {
                    debugger;
                    var row = json[i];
                    var tds = [];
                    for (var col in row) {
                        tds.push('<td>' + row[col] + '</td>');
                       // tds.push('<td>' + row.city_name + '</td>');
                       // tds.push('<td>' + row.population + '</td>');
                       //tds.push('<td>' + row.year + '</td>');
                    }  
                    rows.push('<tr>' + tds.join() + '</tr>');
                }
                $table.find('tbody').append(rows.join(''));
            }
 
        }
 
    </script>


с фоновым кодом

protected void Page_Load(object sender, EventArgs e)
{
    var data = GetAllTableNames();
    ddlTableNames.DataSource = data;
    ddlTableNames.DataBind();
    ddlTableNames.Items.Insert(0, "Select a Table");
}
private static string[] GetAllTableNames()
{
    SqlConnection con = new SqlConnection(@"user id=sa;password=ssa;database=Mohan;data source=PCTH101\PCTH101");
    SqlCommand cmd = new SqlCommand("select name from sys.tables", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);
    return dt.AsEnumerable().Select(k => k[0] + "").ToArray();
}
[WebMethod]
public static string GetTableData(string tableName)
{
    if (GetAllTableNames().Contains(tableName)) // To avoid sql injection
    {
        SqlConnection con = new SqlConnection(@"user id=sa;password=ssa;database=Mohan;data source=PCTH101\PCTH101");
        SqlCommand cmd = new SqlCommand("select * from " + tableName, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        string json = JsonConvert.SerializeObject(dt);
        return json;
    }
    else
        return "Table Name Not Found";
}

0 Ответов