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)
{
}
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);
}
}