Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “Gridview”的第一行总是被删除,而不是被选择删除的用户_C#_Jquery_Asp.net - Fatal编程技术网

C# “Gridview”的第一行总是被删除,而不是被选择删除的用户

C# “Gridview”的第一行总是被删除,而不是被选择删除的用户,c#,jquery,asp.net,C#,Jquery,Asp.net,我试图从我的GridView中删除所选用户,但当我选择用户旁边的delete按钮时,它会删除GridView的第一行,而不是所选用户 这是我的GridView: <asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="False"

我试图从我的
GridView
中删除所选用户,但当我选择用户旁边的delete按钮时,它会删除GridView的第一行,而不是所选用户

这是我的
GridView

<asp:GridView
                            ID="gvUsers"
                            runat="server"
                            AutoGenerateColumns="False"
                            Width="100%"
                            GridLines="None"
                            CssClass="table table-bordered table-hover">
                            <Columns>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:HiddenField ID="hdnPagesize" runat="server" />
                                        <img id="imgPreview" class="img-rounded" style="width: 38px; height: 38px; margin-top: -10px; margin-bottom: -12px" alt="" src="" />
                                    </ItemTemplate>
                                    <ItemStyle Width="4%" HorizontalAlign="Center" VerticalAlign="Middle" />
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Name" SortExpression="Name">
                                    <ItemTemplate>
                                        <label id="lblFullName" style="font-weight: normal;"></label>
                                    </ItemTemplate>
                                    <ItemStyle CssClass="cssSearch" Width="28%" />
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Email">
                                    <ItemTemplate>
                                        <label id="lblEmail" style="font-weight: normal;"></label>
                                    </ItemTemplate>
                                    <ItemStyle CssClass="cssSearch" Width="24%" />
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Dob">
                                    <ItemTemplate>
                                        <label id="lblDob" style="font-weight: normal;"></label>
                                    </ItemTemplate>
                                    <ItemStyle Width="12%" />
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Status" ItemStyle-Width="7%">
                                    <ItemTemplate>
                                        <asp:HiddenField ID="hdnStatus" runat="server" />
                                        <label id="lblStatus" style="font-size: 13px; font-weight: normal;"></label>
                                    </ItemTemplate>
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Role">
                                    <ItemTemplate>
                                        <label id="lblRole" style="font-weight: normal;"></label>
                                    </ItemTemplate>
                                    <ItemStyle Width="8%" />
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Account" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Center">
                                    <ItemTemplate>
                                        <label id="lblAccountStatus" style="font-weight: normal; font-size: large;"></label>
                                    </ItemTemplate>
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Action" ItemStyle-Width="8%" ItemStyle-HorizontalAlign="Center">
                                    <ItemTemplate>
                                        <a id="aEditUserDetails" style="cursor: pointer;">
                                            <i class="ti-pencil-alt" style="font-size: large"></i>
                                        </a>
                                        <a id="aDeleteUser" style="cursor: pointer;" data-toggle="modal" data-target="#confirm-delete">
                                            <i class="glyphicon glyphicon-trash text-danger" style="font-size: medium"></i>
                                        </a>

                                        <!-- BEGIN Modal Confirm -->
                                        <div class="modal fade" id="confirm-delete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                                            <div class="modal-dialog modal-sm">
                                                <div class="modal-content">
                                                    <div class="modal-body">
                                                        <h4>Are you sure?</h4>
                                                        <br />
                                                        <a id="aDeleteUserModal" class="btn btn-success" data-dismiss="modal">Yes</a>
                                                        <input type="button" class="btn btn-danger" data-dismiss="modal" value="No" />                                                            
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <!-- END Modal Confirm -->
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>

你确定吗?

然后我的代码如下:

<script type="text/javascript">

        var selectedPageSize = 10   /* Default size is 10. */
        var currentPageIndex = 1    /* Default pageindex is 1. */

        $(function () {
            /* Retrieve list of users when page loads. */
            GetUsers(currentPageIndex, selectedPageSize);
        });

        $(document).on("keyup", "[id*=txtSearch]", function () {
            /* Retrieve list of users when any key is pressed in search box (txtSearch). */
            GetUsers(currentPageIndex, selectedPageSize);
        });

        $(document).on("click", ".Pager .page", function () {
            currentPageIndex = parseInt($(this).attr('page'))
            GetUsers(currentPageIndex, selectedPageSize);
        });

        function changePagesize(obj) {
            selectedPageSize = $("[id*=ddlPageSize]").val();
            GetUsers(currentPageIndex, selectedPageSize);
        }

        function SearchKey() {
            return jQuery.trim($("[id*=txtSearch]").val());
        };
        function GetUsers(pageIndex, pageSize) {
            /* Pass parameters in array, gData.*/
            var gData = [];
            gData[0] = pageIndex;
            gData[1] = pageSize;
            gData[2] = SearchKey();
            var jsonData = JSON.stringify({ gData: gData });

            $.ajax({
                type: "POST",
                url: "users.aspx/GetUsers",
                data: jsonData,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: "true",
                success: BindUsersList,
                failure: function (response) {
                },
                error: function (response) {
                    alert(response.d);
                }
            });
        }
        var row;
        function BindUsersList(response) {
            var xmlDoc = $.parseXML(response.d);
            var xml = $(xmlDoc);
            var users = xml.find("dsUsers");
            var html = '<table id="gvUsers">';
            if (row == null) {
                row = $("#<%=gvUsers.ClientID %> tr:last-child").clone(true);
            }
            $("#<%=gvUsers.ClientID %> tr").not($("#<%=gvUsers.ClientID %> tr:first-child")).remove();
            html += $("#<%=gvUsers.ClientID %>").html();
            if (users.length > 0) {
                $.each(users, function () {
                    html += "<tr>";

                    $(row).find("[id*=imgPreview]").attr("src", "../imageHandler.ashx?user_id_pk=" + $(this).find("user_id_pk").text() + "");
                    $(row).find("[id*=lblFullName]").html($(this).find("FullName").text());
                    $(row).find("[id*=lblEmail]").html($(this).find("email").text());
                    $(row).find("[id*=lblDob]").html($(this).find("dob").text());

                    if ($(this).find("user_status").text() == "true") {
                        $(row).find("[id*=lblStatus]").html("Active");
                        $(row).find("[id*=lblStatus]").attr("class", "label label-success label-transparent");
                    }
                    else {
                        $(row).find("[id*=lblStatus]").html("Inactive");
                        $(row).find("[id*=lblStatus]").attr("class", "label label-danger label-transparent");
                    }
                    if ($(this).find("accountStatus").text() == "locked") {
                        $(row).find("[id*=lblAccountStatus]").attr("class", "ti-lock text-danger");
                        $(row).find("[id*=lblAccountStatus]").attr("data-toggle", "tooltip");
                        $(row).find("[id*=lblAccountStatus]").attr("data-placement", "left");
                        $(row).find("[id*=lblAccountStatus]").attr("title", "Account locked due to invalid login attempts.");
                    }
                    else {
                        $(row).find("[id*=lblAccountStatus]").attr("class", "ti-unlock text-success");
                    }

                    $(row).find("[id*=lblRole]").html($(this).find("user_role").text());

                    $(row).find("[id*=aEditUserDetails]").attr("data-user-id", $(this).find("user_id_pk").text());
                    $(row).find("[id*=aEditUserDetails]").attr("title", "Edit User Details");

                    $(row).find("[id*=aDeleteUserModal]").attr("data-user-id", $(this).find("user_id_pk").text());

                    $("#<%=gvUsers.ClientID %>").append(row);
                    row = $("#<%=gvUsers.ClientID %> tr:last-child").clone(true);

                    html += $(row).html();
                    html += "</tr>";
                });
                var pager = xml.find("dtPager");
                $("[id*=divPager]").gvPager({
                    ActiveCssClass: "current",
                    PagerCssClass: "pager",
                    PageIndex: parseInt(pager.find("PageIndex").text()),
                    PageSize: parseInt(pager.find("PageSize").text()),
                    RecordCount: parseInt(pager.find("RecordCount").text())
                });
                $(".cssSearch").each(function () {
                    var searchPattern = new RegExp('(' + SearchKey() + ')', 'ig');
                    $(this).html($(this).text().replace(searchPattern, "<span class = 'highlight'>" + SearchKey() + "</span>"));
                });
            } else {
                var empty_row = row.clone(true);
                $("td:first-child", empty_row).attr("colspan", $("td", row).length);
                $("td:first-child", empty_row).attr("align", "center");
                $("td:first-child", empty_row).html("No Data Available.");
                $("td", empty_row).not($("td:first-child", empty_row)).remove();
                $("#<%=gvUsers.ClientID %>").append(empty_row);
            }
            html += '</table>';
        };

        /* Edit user details. */
        $("[id*=aEditUser]").click(function () {
            $.ajax({
                type: "POST",
                url: "users.aspx/EditUser",
                data: '{userId: ' + $(this).data('user-id') + '}',
                contentType: "application/json; charset=utf-8",
                datatype: "json",
                async: "true",
                success: function (response) {
                    location.href = "newuser.aspx?uid=" + response.d;
                },
                error: function (response) {
                    Notification(response.status + ' ' + response.statusText, 'Error', 'error');
                }
            });
        });

        /* Delete user. */
        $("[id*=aDeleteUserModal]").click(function () {
            //var ans = confirm("Are you sure?");
            //if (ans == true) {

                $.ajax({
                    type: "POST",
                    url: "users.aspx/DeleteUser",
                    data: '{userId: ' + $(this).data('user-id') + '}',
                    contentType: "application/json; charset=utf-8",
                    datatype: "json",
                    async: "true",
                    success: function (response) {
                        if (response.d == 'DeletePermissionDenied') {
                            Notification('This feature is disabled in demo version.', 'Permission Denied', 'error');
                            //Notification('You dont have the permission to delete the data, contact your administrator.', 'Permission Denied', 'error');
                        }
                        else if (response.d == 'Success') {
                            GetUsers(currentPageIndex, selectedPageSize);
                            Notification('User deleted successfully.', 'Success', 'success');
                        }
                    },
                    error: function (response) {
                        Notification(response.status + ' ' + response.statusText, 'Error', 'error');
                    }
                });
            //}
        });
    </script>

var selectedPageSize=10/*默认大小为10*/
var currentPageIndex=1/*默认pageindex为1*/
$(函数(){
/*在页面加载时检索用户列表*/
GetUsers(currentPageIndex,selectedPageSize);
});
$(document).on(“keyup”,“[id*=txtSearch]”,函数(){
/*在搜索框(txtSearch)中按任意键时检索用户列表*/
GetUsers(currentPageIndex,selectedPageSize);
});
$(document).on(“click”,“.Pager.page”,函数(){
currentPageIndex=parseInt($(this).attr('page'))
GetUsers(currentPageIndex,selectedPageSize);
});
函数更改页面大小(obj){
selectedPageSize=$(“[id*=ddlPageSize]”)。val();
GetUsers(currentPageIndex,selectedPageSize);
}
函数SearchKey(){
返回jQuery.trim($(“[id*=txtSearch]”)和.val();
};
函数GetUsers(页面索引、页面大小){
/*在数组中传递参数,gData*/
var-gData=[];
gData[0]=页面索引;
gData[1]=页面大小;
gData[2]=SearchKey();
var jsonData=JSON.stringify({gData:gData});
$.ajax({
类型:“POST”,
url:“users.aspx/GetUsers”,
资料来源:jsonData,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
异步:“真”,
成功:BindUsersList,
故障:功能(响应){
},
错误:函数(响应){
警报(response.d);
}
});
}
var行;
函数BindUsersList(响应){
var xmlDoc=$.parseXML(response.d);
var xml=$(xmlDoc);
var users=xml.find(“dsUsers”);
var html='';
if(行==null){
row=$(“#tr:最后一个孩子”).clone(true);
}
$(“#tr”)。不是($(“#tr:第一个孩子”)。删除();
html+=$(“#”)html();
如果(users.length>0){
$.each(用户、函数(){
html+=“”;
$(行).find(“[id*=imgPreview]”).attr(“src”,”./imageHandler.ashx?user\u id\u pk=“+$(this).find(“user\u id\u pk”).text()+”;
$(row.find(“[id*=lblFullName]”)html($(this.find(“FullName”).text());
$(row.find(“[id*=lblEmail]”)html($(this.find(“email”).text());
$(row.find(“[id*=lblDob]”)html($(this.find(“dob”).text());
if($(this).find(“用户状态”).text()=“true”){
$(行).find(“[id*=lblStatus]”)html(“活动”);
private void BindUsersRow()
{
    DataTable dtUsers = new DataTable();
    dtUsers.Columns.Add("user_id_pk");
    dtUsers.Columns.Add("FullName");
    dtUsers.Columns.Add("email");
    dtUsers.Columns.Add("dob");
    dtUsers.Columns.Add("accountStatus");
    dtUsers.Columns.Add("user_role");
    dtUsers.Columns.Add("user_status");        
    dtUsers.Rows.Add();
    gvUsers.DataSource = dtUsers;
    gvUsers.DataBind();
    //gvUsers.UseAccessibleHeader = true;
    //gvUsers.HeaderRow.TableSection = TableRowSection.TableHeader;
}

[WebMethod]
public static string GetUsers(List<string> gData)
{
    string query = "sp_um_getUsersList";
    SqlCommand cmd = new SqlCommand(query);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@searchKey", gData[2]);
    cmd.Parameters.AddWithValue("@PageIndex", gData[0]);
    cmd.Parameters.AddWithValue("@PageSize", gData[1]);
    cmd.Parameters.AddWithValue("@userStatus", strUserStatus);
    cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
    return GetData(cmd, int.Parse(gData[0]), int.Parse(gData[1])).GetXml();
}

private static DataSet GetData(SqlCommand cmd, int pageIndex, int pageSize)
{
    string strConnString = ConfigurationManager.ConnectionStrings["CONN"].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, "dsUsers");
                DataTable dt = new DataTable("dtPager");
                dt.Columns.Add("PageIndex");
                dt.Columns.Add("PageSize");
                dt.Columns.Add("RecordCount");
                dt.Rows.Add();
                dt.Rows[0]["PageIndex"] = pageIndex;
                dt.Rows[0]["PageSize"] = pageSize;
                dt.Rows[0]["RecordCount"] = cmd.Parameters["@RecordCount"].Value;
                ds.Tables.Add(dt);
                return ds;
            }
        }
    }
}

[WebMethod]
public static string EditUser(int userId)
{
    string str = HttpUtility.UrlEncode(DataControl.Encrypt(userId.ToString()));
    return str;
}

[WebMethod]
public static string DeleteUser(int userId)
{
    string result = "";
    if (isDeletePermission.Equals(false))
    {
        result = "DeletePermissionDenied";
    }
    else
    {
        string strQuery = "EXEC sp_um_deleteUser " + userId + "," + int.Parse(HttpContext.Current.Session["UserId"].ToString()) + "";
        bool isResult = DataControl.ExecuteNonQuery(strQuery);
        if (isResult.Equals(true))
        {
            result = "Success";
        }
        else
        {
            result = "Error";
        }
    }
    return result;
}
var row;
function BindUsersList(response) {
    var xmlDoc = $.parseXML(response.d);
    var xml = $(xmlDoc);
    var users = xml.find("dsUsers");
    var html = '<table id="gvUsers">';

    row = $("#<%=gvUsers.ClientID %> tr:last-child").clone(true);

    [...]
/* Edit user details. */
        $("[id*=aEditUser]").click(function () {
           var idUser =  $(this).data('user-id');                 

           $.ajax({
                type: "POST",
                url: "users.aspx/EditUser",
                data: '{userId: ' + idUser + '}',
                contentType: "application/json; charset=utf-8",
                datatype: "json",
                async: "true",
                success: function (response) {
                    location.href = "newuser.aspx?uid=" + response.d;
                },
                error: function (response) {
                    Notification(response.status + ' ' + response.statusText, 'Error', 'error');
                }
            });
        });