Click here to Skip to main content
15,891,431 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I have a problem when I click like below


Click View All ASPXGridView

but when I move the page next page is not selected

Result from click view all

What should I do?

and when I press the save button, a gridview which has in view the all checks not entered into the database.

Please, help me ASAP.

Thanks

<%@ Page Title="MesinAbsensi - Access Control" Language="C#" MasterPageFile="../MasterPage.master" AutoEventWireup="true"
    CodeFile="AccessControls.aspx.cs" Inherits="AccessControls" %>

<%@ Register Assembly="DevExpress.Web.v14.1, Version=14.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %>
<%@ Register Assembly="DevExpress.Web.v14.1, Version=14.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Main" runat="Server">
    <script type="text/javascript">
        function ViewCheckedChanged(s, e) {
            for (var i = 0; i < grid.GetVisibleRowsOnPage() ; i++) {
                var checkBox = ASPxClientControl.GetControlCollection().GetByName("CheckView_" + i);
                checkBox.SetChecked(s.GetChecked());
            }
        }

        function InsertCheckedChanged(s, e) {
            for (var i = 0; i < grid.GetVisibleRowsOnPage() ; i++) {
                var checkBox = ASPxClientControl.GetControlCollection().GetByName("CheckInsert_" + i);
                checkBox.SetChecked(s.GetChecked());
            }
        }

        function UpdateCheckedChanged(s, e) {
            for (var i = 0; i < grid.GetVisibleRowsOnPage() ; i++) {
                var checkBox = ASPxClientControl.GetControlCollection().GetByName("CheckUpdate_" + i);
                checkBox.SetChecked(s.GetChecked());
            }
        }

        function DeleteCheckedChanged(s, e) {
            for (var i = 0; i < grid.GetVisibleRowsOnPage() ; i++) {
                var checkBox = ASPxClientControl.GetControlCollection().GetByName("CheckDelete_" + i);
                checkBox.SetChecked(s.GetChecked());
            }
        }
    </script>

    <div class="row-fluid">
        <h3 class="page-title">
            Access Control <small></small>
        </h3>
        <ul class="breadcrumb">
            <li><i class="icon-home"></i><a href="#">Home</a> <i class="icon-angle-right"></i>
            </li>
            <li><a href="#">AccessControl</a> <i class="icon-angle-right"></i></li>
            <li><a href="#">Access Control</a></li>
        </ul>
        <div class="alert alert-success" id="Alert" runat="server">
        <button class="close" data-dismiss="alert">
        </button>
        <strong>Success!</strong> Record Add/Update successfully.
    </div>
        <!-- BEGIN EXAMPLE TABLE PORTLET-->
        <div class="portlet box blue tabbable">
            <div class="portlet-title">
                <div class="caption">
                    <i class="icon-reorder"></i><span class="hidden-480">Access Control</span>
                </div>
            </div>
            <div class="portlet-body form">
                <div class="tabbable portlet-tabs">
                    <div class="tab-content">
                        <div class="tab-pane active" id="portlet_tab1">
                            <div class="form-horizontal">
                                <div class="control-group">
                                    <label class="control-label">
                                        Access Control</label>
                                    <div class="controls">
                                        <asp:DropDownList runat="server" ID="ddlAccessControl" OnSelectedIndexChanged="ddlAccessControl_SelectedIndexChanged"
                                            AutoPostBack="True">
                                        </asp:DropDownList>
                                        <span class="help-inline">
                                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ValidationGroup="vg" InitialValue="--Select--"
                                                runat="server" ControlToValidate="ddlAccessControl" ErrorMessage="Select Access Control"></asp:RequiredFieldValidator>
                                        </span>
                                    </div>
                                </div>
                                <div>
                                    <asp:Label runat="server" ID="MessageLbl"></asp:Label></div>
                                <div class="form-actions">
                                    <asp:Button runat="server" ID="btnSave" Text="Save" OnClick="btnSave_Click" ValidationGroup="vg"
                                        CssClass="btn blue" />
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- END EXAMPLE TABLE PORTLET-->
    </div>
    <div class="row-fluid">
        <!-- BEGIN EXAMPLE TABLE PORTLET-->
        <div class="portlet box purple">
            <div class="portlet-title">
                <div class="caption">
                    <i class="icon-globe"></i>Access Control Field</div>
                <div class="tools">
                    <a href="javascript:;" class="collapse"></a>
                        <a href="javascript:;" class="remove"></a>
                </div>
            </div>
            <div class="portlet-body">
                <dx:ASPxGridView ID="GvAccessControl" runat="server" AutoGenerateColumns="False" KeyFieldName="ID" ClientInstanceName="grid" Width="100%"
                    OnRowUpdating="GvAccessControl_RowUpdating" OnCellEditorInitialize="GvAccessControl_CellEditorInitialize"  EnableTheming="True" Theme="Moderno" >
                    <Columns>
                        <dx:GridViewDataTextColumn FieldName="ID" Width="200px" Visible="false" />
                        <dx:GridViewDataTextColumn FieldName="FID" Width="200px" Visible="false" />
                        <dx:GridViewDataTextColumn FieldName="Name" Caption="CONTROL FIELD" VisibleIndex="0" Width="500px" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="Black" />
                        <dx:GridViewDataColumn Caption="View" Width="100px" HeaderStyle-HorizontalAlign="Center" CellStyle-HorizontalAlign="Center" >
                            <HeaderTemplate>
                                <dx:ASPxCheckBox ID="viewAll" runat="server" AutoPostBack="false" ClientInstanceName="viewAll">
                                    <ClientSideEvents CheckedChanged="ViewCheckedChanged" />
                                </dx:ASPxCheckBox>
                            </HeaderTemplate>
                            <DataItemTemplate>
                                <dx:ASPxCheckBox ID="CboView" Checked='<%# Eval("View") %>' runat="server" AutoPostBack="false" OnInit="CboView_Init" />
                            </DataItemTemplate>
                        </dx:GridViewDataColumn>
                        <dx:GridViewDataColumn Caption="Insert" Width="100px" HeaderStyle-HorizontalAlign="Center" CellStyle-HorizontalAlign="Center" >
                            <HeaderTemplate>
                                <dx:ASPxCheckBox ID="insertAll" runat="server" AutoPostBack="false" ClientInstanceName="insertAll">
                                    <ClientSideEvents CheckedChanged="InsertCheckedChanged" />
                                </dx:ASPxCheckBox>
                            </HeaderTemplate>
                            <DataItemTemplate>
                                <dx:ASPxCheckBox ID="CboInsert" Checked='<%# Eval("Insert") %>' runat="server" AutoPostBack="false" OnInit="CboInsert_Init" />
                            </DataItemTemplate>
                        </dx:GridViewDataColumn>
                        <dx:GridViewDataColumn Caption="Update" Width="100px" HeaderStyle-HorizontalAlign="Center" CellStyle-HorizontalAlign="Center" >
                            <HeaderTemplate>
                                <dx:ASPxCheckBox ID="updateAll" runat="server" AutoPostBack="false" ClientInstanceName="updateAll">
                                    <ClientSideEvents CheckedChanged="UpdateCheckedChanged" />
                                </dx:ASPxCheckBox>
                            </HeaderTemplate>
                            <DataItemTemplate>
                                <dx:ASPxCheckBox ID="cboUpdate" Checked='<%# Eval("Update") %>' runat="server" AutoPostBack="false" OnInit="cboUpdate_Init" CheckBoxStyle-HorizontalAlign="Center" />
                            </DataItemTemplate>
                        </dx:GridViewDataColumn>
                        <dx:GridViewDataColumn Caption="Delete" Width="100px" HeaderStyle-HorizontalAlign="Center" CellStyle-HorizontalAlign="Center" >
                            <HeaderTemplate>
                                <dx:ASPxCheckBox ID="deleteAll" runat="server" AutoPostBack="false" ClientInstanceName="deleteAll">
                                    <ClientSideEvents CheckedChanged="DeleteCheckedChanged" />
                                </dx:ASPxCheckBox>
                            </HeaderTemplate>
                            <DataItemTemplate>
                                <dx:ASPxCheckBox ID="cboDelete" Checked='<%# Eval("Delete") %>' runat="server" AutoPostBack="false" OnInit="cboDelete_Init" CheckBoxStyle-HorizontalAlign="Center" />
                            </DataItemTemplate>
                        </dx:GridViewDataColumn>
                    </Columns>
                    <SettingsPager Mode="ShowPager" PageSize="10" />
                </dx:ASPxGridView>
            </div>
        </div>
        <!-- END EXAMPLE TABLE PORTLET-->
    </div>
</asp:Content>




using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxGridView;
using DevExpress.Web.Data;
using MesinAbsensiLib;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class AccessControls : System.Web.UI.Page
{
    MesinAbsensiEntities md = new MesinAbsensiEntities();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ProvideRights();
            GetAccessControl();
        }

        Alert.Visible = false;
        GetData();
    }

    private void ProvideRights()
    {
        HttpCookie uCookies = Request.Cookies["uCookies"];
        string UserName = uCookies["UserID"];
        
        int ControlId = Convert.ToInt32(uCookies["AccessControlID"]);
        
        var result1 = md.sp_getViewStatus(ControlId, 2).ToList();
        if (result1[0].Value == false) Response.Redirect("../error.aspx?ms=AccessD");
    }

    private void GetAccessControl()
    {
        var result = md.tblAccessControls.ToList();
        if (result.Count > 0)
        {
            ddlAccessControl.Items.Clear();
            ddlAccessControl.DataSource = result;
            ddlAccessControl.DataTextField = "Name";
            ddlAccessControl.DataValueField = "Id";
            ddlAccessControl.DataBind();
            ddlAccessControl.Items.Insert(0, "--Select--");
        }
        else
        {
            ddlAccessControl.Items.Clear();
            ddlAccessControl.Items.Insert(0, "--Select--");
        }
    }

    private void GetData()
    {
        if (ddlAccessControl.SelectedIndex != 0)
        {
            int ControlId = Convert.ToInt32(ddlAccessControl.SelectedValue);
            var result = (from AC in md.tblControlFields
                          join AFA in md.tblControlFieldAllocates on AC.Id equals AFA.ControlField into gj
                          from PAR in gj.Where(c => c.ControlId == ControlId).DefaultIfEmpty()
                          orderby AC.Orders ascending
                          select new
                          {
                              ID = AC.Id,
                              FID = (PAR.Id == null) ? 0 : PAR.Id,
                              AC.Name,
                              View = (PAR.ViewStatus == null) ? false : PAR.ViewStatus,
                              Insert = (PAR.InsertStatus == null) ? false : PAR.InsertStatus,
                              Update = (PAR.UpdateStatus == null) ? false : PAR.UpdateStatus,
                              Delete = (PAR.DeleteStatus == null) ? false : PAR.DeleteStatus
                          }).ToList();
            GvAccessControl.DataSource = result;

            GvAccessControl.DataBind();
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        int ControlId = Convert.ToInt32(ddlAccessControl.SelectedValue);

        for (int i = 0; i < GvAccessControl.VisibleRowCount; i++)
        {
            int Id = Convert.ToInt32(GvAccessControl.GetRowValues(i, "ID"));
            int FId = Convert.ToInt32(GvAccessControl.GetRowValues(i, "FID"));
            bool View = Convert.ToBoolean(GvAccessControl.GetRowValues(i, "View"));
            bool Insert = Convert.ToBoolean(GvAccessControl.GetRowValues(i, "Insert"));
            bool Update = Convert.ToBoolean(GvAccessControl.GetRowValues(i, "Update"));
            bool Delete = Convert.ToBoolean(GvAccessControl.GetRowValues(i, "Delete"));

            if (FId == 0)
            {
                tblControlFieldAllocate tbl = new tblControlFieldAllocate();
                tbl.ControlId = ControlId;
                tbl.ControlField = Id;
                tbl.ViewStatus = View;
                tbl.InsertStatus = Insert;
                tbl.UpdateStatus = Update;
                tbl.DeleteStatus = Delete;
                md.tblControlFieldAllocates.Add(tbl);

                md.SaveChanges();
            }
            else
            {
                var result = md.tblControlFieldAllocates.Where(c => c.Id == FId).ToList();
                if (result.Count > 0)
                {
                    result[0].ControlId = ControlId;
                    result[0].ControlField = Id;
                    result[0].ViewStatus = View;
                    result[0].InsertStatus = Insert;
                    result[0].UpdateStatus = Update;
                    result[0].DeleteStatus = Delete;

                    md.SaveChanges();
                }
            }
        }

        Alert.Visible = true;
        GetData();
    }

    protected void ddlAccessControl_SelectedIndexChanged(object sender, EventArgs e)
    {
        GetData();
    }

    protected void GvAccessControl_RowUpdating(object sender, ASPxDataUpdatingEventArgs e)
    {
        //UpdateItem(e.Keys, e.NewValues);
        ///CancelEditing(e);
    }

    protected void GvAccessControl_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
    {
        
    }

    protected void CboView_Init(object sender, EventArgs e)
    {
        ASPxCheckBox check = sender as ASPxCheckBox;
        GridViewDataItemTemplateContainer container = check.NamingContainer as GridViewDataItemTemplateContainer;

        check.ClientInstanceName = string.Format("CheckView_{0}", container.VisibleIndex);
    }

    protected void CboInsert_Init(object sender, EventArgs e)
    {
        ASPxCheckBox check = sender as ASPxCheckBox;
        GridViewDataItemTemplateContainer container = check.NamingContainer as GridViewDataItemTemplateContainer;

        check.ClientInstanceName = string.Format("CheckInsert_{0}", container.VisibleIndex);
    }


    protected void cboUpdate_Init(object sender, EventArgs e)
    {
        ASPxCheckBox check = sender as ASPxCheckBox;
        GridViewDataItemTemplateContainer container = check.NamingContainer as GridViewDataItemTemplateContainer;

        check.ClientInstanceName = string.Format("CheckUpdate_{0}", container.VisibleIndex);
    }

    protected void cboDelete_Init(object sender, EventArgs e)
    {
        ASPxCheckBox check = sender as ASPxCheckBox;
        GridViewDataItemTemplateContainer container = check.NamingContainer as GridViewDataItemTemplateContainer;

        check.ClientInstanceName = string.Format("CheckDelete_{0}", container.VisibleIndex);
    }

    //protected void LoadNewValues(tblControlFieldAllocate item, OrderedDictionary values)
    //{
    //    item.ControlId = Convert.ToInt32(ddlAccessControl.SelectedValue);
    //    item.ControlField = Convert.ToInt32(values["ID"]);
    //    item.ViewStatus = Convert.ToBoolean(values["View"]);
    //    item.InsertStatus = Convert.ToBoolean(values["Insert"]);
    //    item.ViewStatus = Convert.ToBoolean(values["Update"]);
    //    item.InsertStatus = Convert.ToBoolean(values["Delete"]);
    //}

    //protected tblControlFieldAllocate UpdateItem(OrderedDictionary keys, OrderedDictionary newValues)
    //{
    //    var id = Convert.ToInt32(keys["ID"]);
    //    var result = (List<tblControlFieldAllocate>)GvAccessControl.DataSource;
    //    var item = result.First(c => c.Id == id);
    //    var arrAccessControl = md.tblControlFieldAllocates.Where(c => c.Id == id).ToList();

    //    LoadNewValues(item, newValues);
    //    if (arrAccessControl.Count() > 0)
    //    {
    //        arrAccessControl[0] = item;
    //        md.SaveChanges();
    //    }
    //    else
    //    {
    //        md.tblControlFieldAllocates.Add(item);
    //        md.SaveChanges();
    //    }

    //    return item;
    //}

    //protected void CancelEditing(CancelEventArgs e)
    //{
    //    e.Cancel = true;
    //    GvAccessControl.CancelEdit();
    //}
}
Posted
Comments
gggustafson 11-Aug-14 15:31pm    
No one will answer your question with that much code. Reduce the amount of code to that which is needed to explain your question.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900