devexpress怎样获取aspxpivotgrid里面被勾选的值

devexpress怎样获取aspxpivotgrid里面被勾选的值,第1张

展示编辑按钮列编辑视图下控件的外观设置»DevExpress开发资源与帮助文档或者示例一:绑定到IList并实现删除和修改//展示publicvoidShowArticleImages(){intarticleId=ConvertToInt32(RequestQueryString["articleId"]);IListimages=BlogArticleImageListArticleImages(articleId);thisgvImagesKeyFieldName="ImageId";thisgvImagesDataSource=images;thisgvImagesDataBind();}//更新protectedvoidgvImages_RowUpdating(objectsender,DevExpressWebDataASPxDataUpdatingEventArgse){intid=ConvertToInt32(eKeys[0]);stringdescript=ConvertToString(eNewValues["Description"]);stringkeywords=ConvertToString(eNewValues["Keywords"]);BlogArticleImageimage=BlogArticleImageRetrieve(id);if(image!=null){imageDescription=descript;imageKeywords=keywords;imagePersist();}eCancel=true;gvImagesCancelEdit();ShowArticleImages();}//删除protectedvoidgvImages_RowDeleting(objectsender,DevExpressWebDataASPxDataDeletingEventArgse){intid=ConvertToInt32(eKeys[0]);BlogArticleImageimage=BlogArticleImageRetrieve(id);if(image!=null){SystemIOFileDelete(ServerMapPath(imageImageUrl));SystemIOFileDelete(ServerMapPath(imageThumbnailUrl));imageRemove();}eCancel=true;gvImagesCancelEdit();ShowArticleImages();}示例二:控件访问权限控制及CRUD *** 作//普通状态下的命令按钮显隐protectedvoidgv_HtmlRowCreated(objectsender,ASPxGridViewTableRowEventArgse){if(!gvIsEditing&&eRowType==DevExpressWebASPxGridViewGridViewRowTypeData){boolisAdmin=CommonIsInRoles(newstring[]{WZWFDALRolesAdmin});stringunit=gvGetRowValues(eVisibleIndex,"UNIT")ToString();boolisAuth=CommonIsInRoles(unit,WZWFDALRolesEnterpriseDepartment,WZWFDALRolesMaintainDepartment);//修改按钮WebControlbtnModify=eRowCells[0]Controls[0]asWebControl;btnModifyVisible=isAuth;//新建按钮WebControlbtnAddNew=eRowCells[0]Controls[1]asWebControl;btnAddNewVisible=isAdmin;//删除按钮WebControlbtnDelete=eRowCells[0]Controls[2]asWebControl;btnDeleteVisible=isAdmin;}}//编辑状态下的控件访问权限控制//管理员:unit,result,md_cmt,ed_cmt//政企部:ed_cmt//网络维护部:result,md_cmtprotectedvoidgrid_CellEditorInitialize(objectsender,ASPxGridViewEditorEventArgse){if(gvIsEditing){//受理单位下拉框if(eColumnFieldName=="UNIT"){ASPxComboBoxcombo=eEditorasASPxComboBox;using(DbCleandb=newDbClean()){comboDataSource=dbListUnits();comboTextField="ROLE";comboValueField="ROLE";comboDataBind();}}//新建状态除了id以外都可以编辑if(gvIsNewRowEditing){eEditorReadOnly=(eColumnFieldName=="ID");}//修改状态下根据角色可编辑部分数据else{eEditorReadOnly=true;if(eColumnFieldName=="UNIT")eEditorReadOnly=!CommonIsInRoles(WZWFDALRolesAdmin);elseif(eColumnFieldName=="RESULT"||eColumnFieldName=="MD_CMT")eEditorReadOnly=!CommonIsInRoles(WZWFDALRolesAdmin,WZWFDALRolesMaintainDepartment);elseif(eColumnFieldName=="ED_CMT")eEditorReadOnly=!CommonIsInRoles(WZWFDALRolesAdmin,WZWFDALRolesEnterpriseDepartment);}}//可编辑控件设置背景色eEditorBackColor=eEditorReadOnlyColorWhite:ColorLightYellow;}//删除protectedvoidgv_RowDeleting(objectsender,ASPxDataDeletingEventArgse){intid=ConvertToInt32(eKeys[0]);using(DbCleandb=newDbClean())dbDelBasicNet(id);eCancel=true;gvCancelEdit();ShowData(ViewState["Unit"]ToString());}//更新protectedvoidgv_RowUpdating(objectsender,ASPxDataUpdatingEventArgse){stringunit=ConvertToString(eNewValues["UNIT"]);stringresult=ConvertToString(eNewValues["RESULT"]);stringedCmt=ConvertToString(eNewValues["ED_CMT"]);if(gvIsEditing){intid=ConvertToInt32(eKeys[0]);using(DbCleandb=newDbClean())dbModBasicNet(id,);}eCancel=true;gvCancelEdit();ShowData(ViewState["Unit"]ToString());}//新增protectedvoidgrid_InitNewRow(objectsender,ASPxDataInitNewRowEventArgse){eNewValues["CREATOR"]=PageUserIdentityName;eNewValues["CREATE_DT"]=SystemDateTimeNow;}protectedvoidgv_RowInserting(objectsender,ASPxDataInsertingEventArgse){stringunit=ConvertToString(eNewValues["UNIT"]);stringresult=ConvertToString(eNewValues["RESULT"]);stringedCmt=ConvertToString(eNewValues["ED_CMT"]);if(gvIsNewRowEditing){using(DbCleandb=newDbClean())dbAddBasicNet();}eCancel=true;gvCancelEdit();ShowData(ViewState["Unit"]ToString());}

以用户登录界面为例说明一下吧:

当用户输入用户名和密码,然后点击登录按钮时,会触发函数,

登录按钮的代码如下:

<asp:ImageButton ID="btnLogin" runat="server" ImageUrl="Images/login_button1png"

Width="67" Height="26" BorderWidth="0" OnClick="btnLogin_Click" />

所以触发的函数是OnClick="btnLogin_Click"

下面的函数考虑的比较详细,不需详细了解的。只知道在后台调用的是btnLogin_Click,就可以了。

protected void btnLogin_Click(object sender, EventArgs e)

{

string strUserName = RequestForm["UserName"]ToString()Trim()ToLower();

string strPassWord = Sha1GetSha1(RequestForm["PassWord"]ToString()Trim());

string SqlString = "SELECT  FROM Users WHERE Login = '" + strUserName + "'";

DataTable dt = DataAccessSelectBySql("SOC2ConnectionStringSql", SqlString);

//用户名存在,判断输入密码是否正确

if ((dtRowsCount == 1) && (dtRows[0][8]ToString() != "1"))

{

string SqlString1 = "Select  from Users Where Pass='" + strPassWord + "'";

DataTable dt1 = DataAccessSelectBySql("SOC2ConnectionStringSql", SqlString1);

if (dt1RowsCount == 0)

{

ResponseWrite("<script language=javascript>windowalert('密码输入错误');locationhref='UserLoginaspx'</script>");

//获取当前尝试登录的用户的登录失败次数,并对其加1

if (!strUserNameEquals("admin"))

{

int i = ConvertToInt32(dtRows[0][7]) + 1;

DataAccessUpdate("SOC2ConnectionStringSql", "Update Users SET FailCount = " + i + " where Login =  '" + strUserName + "'");

if (i >= 3)

{

DataAccessUpdate("SOC2ConnectionStringSql", "Update Users SET IsLocked = 1 where Login =  '" + strUserName + "'");

}

}

// 写入登录失败日志。

string sqlGetUserId = stringFormat("SELECT ID from Users WHERE Login = '{0}'", strUserName);

dt = DataAccessSelectBySql("SOC2ConnectionStringSql", SqlString);

if (dtRowsCount > 0)

{

WriteLoginLog(dtRows[0][0]ToString(), false);

}

}

else

{

Int64 loginId = WriteLoginLog(dtRows[0]["ID"]ToString(), true);

Session["LoginID"] = loginId;

Session["User_ID"] = (int)dtRows[0]["ID"];

Session["User_Name"] = strUserName;

Application[dtRows[0]["ID"]ToString()] = loginId;

string SqlString2 = "select Role_ID,RoleName, RolePermission from Role inner join Users on RoleID = UsersRole_ID where UsersLogin = '" + strUserName + "'";

DataTable dt2 = DataAccessSelectBySql("SOC2ConnectionStringSql", SqlString2);

Session["User_Role"] = dt2Rows[0]["Name"]ToString();

Session["Role_ID"] = (int)dt2Rows[0]["Role_ID"];

Session["UserPermission"] = (UserPermission)(int)dt2Rows[0]["Permission"];

ResponseRedirect("Defaultaspx");

}

}

//用户名不存在或帐号累计输入错误3次

else

{

if(dtRowsCount == 0)

{

ResponseWrite("<script language=javascript>windowalert('你输入的用户名不存在');locationhref='UserLoginaspx'</script>");

}

else

ResponseWrite("<script language=javascript>windowalert('你的帐号累计输入错误3次,已被锁定');locationhref='UserLoginaspx'</script>");

}

}

只要ID唯一就可以用documentgetElementById的形式来取。

不会呀:你看母版也的代码如下:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1mastercs" Inherits="WebApplication2Site1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" ">

总结的一些方法 希望对楼主有帮助

一、使用Querystring

Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:

1、创建一个web form

2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2

3、为button按钮创建click事件

代码如下:

private void Button1_Click(object sender, SystemEventArgs e)

{

string url;

url="webform2aspxname=" + TextBox1Text + "&email=" + TextBox2Text;

ResponseRedirect(url);

}

4、新建一个目标页面命名为webform2

5、在webform2中放置两个Label1,Label2

在webform2的Page_Load中添加如下代码:

private void Page_Load(object sender, SystemEventArgs e)

{

Label1Text=RequestQueryString["name"];

Label2Text=RequestQueryString["email"];

}

运行,即可看到传递后的结果了。

这种方法得缺点是:

1:一般来说这种方法通常使用来传递明码参数,也就是不需要保密得参数,同时在使用querystring传值得时候不能传递对象,参数的长度不能大于1024字节(?),当参数中有中文得时候,通常需要使用>

这个如果是第一次访问这个页面,是不会有影响的,因为ViewState一般是影响进行回发,提交 *** 作以后的页面。

ViewState的作用你要了解,参考>

DataList分页方法的核心原理是利用PagedDataSource对象,PagedDataSource类封装了DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页,下面是PagedDataSource的公共属性:

AllowCustomPaging 获取或设置指示是否启用自定义分页的值。

AllowPaging 获取或设置指示是否启用分页的值。

Count 获取要从数据源使用的项数。

CurrentPageIndex 获取或设置当前页的索引。

DataSource 获取或设置数据源。

DataSourceCount 获取数据源中的项数。

FirstIndexInPage 获取页中的第一个索引。

IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。

IsFirstPage 获取一个值,该值指示当前页是否是首页。

IsLastPage 获取一个值,该值指示当前页是否是最后一页。

IsPagingEnabled 获取一个值,该值指示是否启用分页。

IsReadOnly 获取一个值,该值指示数据源是否是只读的。

IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。

PageCount 获取显示数据源中的所有项所需要的总页数。

PageSize 获取或设置要在单页上显示的项数。

VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。

那么如何使用 PagedDataSource对象进行DataList分页呢?(网上有很多的讲DataList分页的文章,有一些是糊弄人的,有的还无法起作用,我被骗过一次,本文是我经过个人实践经验得到,可以顺利执行。希望对大家有所帮助。)

现在开始拉!

第一步,取出数据到datatable中,然后获得dataview,付给PagedDataSource对象

DataView objView = objTableDefaultView;

PagedDataSource objPds = new PagedDataSource();

objPdsDataSource = objView;

第二步,PagedDataSource对象objPds的设置

objPdsAllowPaging = true;

objPdsPageSize = 4;

objPdsCurrentPageIndex = intParse(ViewState["pageindex"]ToString());

上面的这两段代码都是写在BindData()函数中的,供每次点击分页按钮时调用。BindData()函数如下:

private void BindData()

{

string sql = "SELECT From team";

DataTable objTable = dataGetDataTable(sql);

if (objTable != null && objTableRowsCount > 0)

{

DataView objView = objTableDefaultView;

PagedDataSource objPds = new PagedDataSource();

objPdsDataSource = objView;

objPdsAllowPaging = true;

objPdsPageSize = 4;

objPdsCurrentPageIndex = intParse(ViewState["pageindex"]ToString());

if (!objPdsIsFirstPage)

{

lkPreVisible = true;

}

else

{

lkPreVisible = false;

}

if (!objPdsIsLastPage)

{

lkNextVisible = true;

}

else

{

lkNextVisible = false;

}

dlDataDataSource = objPds;

dlDataDataBind();

}

}

到此为止,我们已经将数据交给了PagedDataSource,剩下的分页将利用PagedDataSource 进行处理。可能大家注意到了,这个数据交付是完整的数据交付,如果数据量很大会造成一定的效率低下,不过这里暂时不考虑这个问题。有兴趣的朋友可以一起探讨一下。

上面的第三行代码中的 ViewState["pageindex"] 是用来控制PagedDataSource的当前页的,我们在Page_Load事件中和第三步将要将的函数中来具体讲解如何利用 ViewState["pageindex"]控制当前页。

BindData()函数中后面的部分是控制向前向后按钮的显隐的,不再多说。

第三步,分页控制

第二步中说过利用 ViewState["pageindex"] 来控制当前页,为了在页面加载的时候就显示第一页,我们当然要在Page_load事件中将 ViewState["pageindex"]置为0。

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

ViewState["pageindex"] = "0";

BindData(); }

}

我们需要加两个按钮(Previous、Next)来点击进行分页控制。

<asp:DataList ID="dlData" runat="server" RepeatColumns="4" >

<ItemTemplate>

<asp:Label ID="lblName" runat="server" /><br />

<asp:Label ID="lblTime" runat="server" />

</ItemTemplate>

</asp:DataList>

<asp:linkbutton ID="lkPre" OnCommand="IndexChanging" CommandArgument="pre" runat="server" >PREVIOUS PAGE></asp:linkbutton>

<asp:linkbutton ID="lkNext" OnCommand="IndexChanging" CommandArgument="next" runat="server" >NEXT PAGE</asp:linkbutton>

两个按钮的 OnCommand都是IndexChanging()函数,我们通过CommandArgument(pre和next)来区分到底是向前翻还是向后翻。下面是IndexChanging()函数

protected void IndexChanging(object sender, EventArgs e)

{

string strCommand = ((LinkButton)sender)CommandArgumentToString();

int pageindex = intParse(ViewState["pageindex"]ToString());

if (strCommand == "pre")

{

pageindex = pageindex - 1;

}

else

{

pageindex = pageindex + 1;

}

ViewState["pageindex"] = pageindex;

BindData();

}

至此,我们的分页函数已经写完了。这里还有一些东西没有说,比如显示一共多少条记录,当前第几页,一共多少页以及每一页的页码。相信看懂了上面所说的后这些东西还是容易写出来的。

总结一下,我们在前台写好DataList等待数据,而数据是由PagedDataSource提供的,分页通过我们新加的两个ImageButton来控制ViewState进而达到控制PagedDataSource的CurrentPageIndex来实现的。所以,其实DataList也没干啥事,就是显示了每一页的数据而已。有一点需要说明,PagedDataSource的CurrentPageIndex是从0开始的,这也是为什么在Page_load事件中要讲ViewState置为0而不是1的缘故。

Aspnet提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据。

实现DataList或Repeater控件的分页显示有几种方法:

1、写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable)

2、使用PagedDataSource类(位于SystemWebUIWebControls命名空间里)

本篇文章主要说怎么使用PagedDataSource类实现DataList和Repeater控件的分页显示。DataGrid控件内部也使用了PagedDataSource类,PagedDataSource 类封装 DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页。

PagedDataSource 类的部分公共属性:

AllowCustomPaging 获取或设置指示是否启用自定义分页的值。

AllowPaging 获取或设置指示是否启用分页的值。

Count 获取要从数据源使用的项数。

CurrentPageIndex 获取或设置当前页的索引。

DataSource 获取或设置数据源。

DataSourceCount 获取数据源中的项数。

FirstIndexInPage 获取页中的第一个索引。

IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。

IsFirstPage 获取一个值,该值指示当前页是否是首页。

IsLastPage 获取一个值,该值指示当前页是否是最后一页。

IsPagingEnabled 获取一个值,该值指示是否启用分页。

IsReadOnly 获取一个值,该值指示数据源是否是只读的。

IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。

PageCount 获取显示数据源中的所有项所需要的总页数。

PageSize 获取或设置要在单页上显示的项数。

VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。

这些属性是否和DataGrid的属性很相似?没错,DataGrid控件就是使用PagedDataSource类来实现数据分页显示的 。下面举个使用PagedDataSource类实现DataList和Repeater控件的分页显示的例子:

public void Page_Load(Object src,EventArgs e)

{

OleDbConnection objConn=new OleDbConnection(@"Provider=MicrosoftJetOLEDB40; Data Source=c:\testmdb");

OleDbDataAdapter objCommand=new OleDbDataAdapter("select from Users",objConn);

DataSet ds=new DataSet();

objCommandFill(ds);

//对PagedDataSource 对象的相关属性赋值

PagedDataSource objPds = new PagedDataSource();

objPdsDataSource = dsTables[0]DefaultView;

objPdsAllowPaging = true;

objPdsPageSize = 5;

int CurPage;

//当前页面从Page查询参数获取

if (RequestQueryString["Page"] != null)

CurPage=ConvertToInt32(RequestQueryString["Page"]);

else

CurPage=1;

objPdsCurrentPageIndex = CurPage-1;

lblCurrentPageText = "Page: " + CurPageToString();

if (!objPdsIsFirstPage)

lnkPrevNavigateUrl=RequestCurrentExecutionFilePath + "Page=" + ConvertToString(CurPage-1);

if (!objPdsIsLastPage)

lnkNextNavigateUrl=RequestCurrentExecutionFilePath+ "Page=" + ConvertToString(CurPage+1);

//把PagedDataSource 对象赋给Repeater控件

Repeater1DataSource=objPds;

Repeater1DataBind();

}

以上就是关于devexpress怎样获取aspxpivotgrid里面被勾选的值全部的内容,包括:devexpress怎样获取aspxpivotgrid里面被勾选的值、asp.net是如何获得客户端的事件并以此调用服务端的方法的、子页面获取母版页的层等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9390404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存