GridView的 OnRowDataBound 事件用法
<asp:GridView ID="RptUsers" runat="server" AutoGenerateColumns="False" Width="99%"
CssClass="data_table" AllowPaging="false" OnPageIndexChanging="RptUsers_PageIndexChanging"
OnRowCommand="RptUsers_RowCommand" onrowdatabound="RptUsers_RowDataBound" >
<AlternatingRowStyle BackColor="#fafafa" />
<EmptyDataRowStyle HorizontalAlign="Left" />
<PagerStyle HorizontalAlign="left" />
<RowStyle HorizontalAlign="Left" />
<HeaderStyle HorizontalAlign="Left" />
<Columns>
<asp:TemplateField HeaderText="选择" Visible="false" HeaderStyle-Wrap="false">
<HeaderTemplate>
<input id="cbSelAll" onclick="SelectedAllChk(this.checked);" type="checkbox">
</HeaderTemplate>
<ItemTemplate>
<%#GetInputTagHtml(Convert.ToInt32(Eval("Id")))%>
<asp:HiddenField ID="HFId" runat="server" Value='<%# Eval("Id") %>' />
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="序号" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# (this.AspNetPager1.CurrentPageIndex - ) * this.AspNetPager1.PageSize + Container.DataItemIndex + %>
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="投票名称" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#Eval("Name")%>
</ItemTemplate>
<ItemStyle Wrap="true" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="主办单位" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# Eval("Organizer")%>
</ItemTemplate>
<ItemStyle Wrap="true" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="创建者" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#GetUserName(Convert.ToInt32(Eval("Creater")))%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="开始时间" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# GetDateStr(Eval("StartTime").ToString()) %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="结束时间" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# GetDateStr(Eval("EndTime").ToString())%>
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="创建时间" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#Convert.ToDateTime(Eval("CreateTime").ToString()).ToString("yyyy-MM-dd")%>
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="投票类型" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#GetActiveType(Eval("ActiveType").ToString())%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="投票IP限制" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#GetIPLimitType(Eval("IPLimitType").ToString())%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="游客投票" HeaderStyle-Wrap="false">
<ItemTemplate>
<%#GetUserLimitType(Eval("UserLimitType").ToString())%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="开启状态" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# GetStateStr(Eval("States").ToString())%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作" HeaderStyle-Wrap="false">
<ItemTemplate>
<%# GetOperateStr(Eval("ActiveType").ToString(), Eval("Id").ToString())%>
<a href='/admin/ActivityInfo/ActivityInfoAdd.aspx?action=edit&id=<%#Eval("Id") %>'>编辑</a>
<asp:LinkButton ID="lkbtnOpen" CommandName="lkbtnOpen" runat="server" CommandArgument='<%# Eval("Id") %>'>开启</asp:LinkButton>
<asp:HiddenField ID="hid_states" runat="server" Value='<%# Eval("States") %>' />
<asp:LinkButton ID="lkbtnVote" CommandName="lkbtnVote" runat="server" CommandArgument='<%# Eval("Id") %>'>投票数据同步</asp:LinkButton>
<asp:LinkButton ID="lkbDelete" CommandName="lkbDelete" runat="server" CommandArgument='<%# Eval("Id") %>' OnClientClick="return confirm('您将清除此投票项目的投票数据,确认删除吗?');">删除</asp:LinkButton>
<a href="javascript:void(0)" onclick="manageWorkVoteInfo(<%#Eval("Id") %>)">投票统计</a>
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="left" />
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<img src="/images/no_data.gif" />
</EmptyDataTemplate>
</asp:GridView>
protected void RptUsers_RowCommand(object sender, GridViewCommandEventArgs e)
{
//删除
if (e.CommandName.Equals("lkbDelete"))
{
try
{
Dictionary<string, object> searchConditions = new Dictionary<string, object>();
searchConditions.Add("States",);
searchConditions.Add("ActivityId", Convert.ToInt32(e.CommandArgument.ToString())); IList<WorkInfo> workInfo_list = ServiceFactory.WorkInfoService.QueryWorkInfo(searchConditions);
if (workInfo_list.Count > )
{
JSUtil.MessageBox("该投票下面有图文作品,请先删除图片作品!");
return;
} ActivityInfo model_activeInfo = ServiceFactory.ActivityInfoService.GetById(Convert.ToInt32(e.CommandArgument.ToString()));
string imgpath =model_activeInfo==null?"": model_activeInfo.ImgPath;
ActivityInfo activity = model_activeInfo;
//ServiceFactory.ActivityInfoService.Delete(Convert.ToInt32(e.CommandArgument.ToString()));
IOHelper.DeleteFile(Server.MapPath(imgpath));
UserInfo user=ServiceFactory.UserInfoService.GetById(int.Parse(activity.Creater));
IDictionary<string, object> param = new Dictionary<string, object>();
param.Add("Activity", activity.Id);
param.Add("AdminId", user.Id);
//投票活动和管理员授权列表
IList<RelationAdminActivityInfo> res = ServiceFactory.RelationAdminActivityInfoService.QueryConditions(param);
if (res != null && res.Count > )
{
foreach(var item in res)
{
ServiceFactory.RelationAdminActivityInfoService.Delete(item.Id);
}
}
//删除投票活动 20161216
ServiceFactory.ActivityInfoService.Delete(Convert.ToInt32(e.CommandArgument.ToString())); JSUtil.MessageBox("删除成功!");
BindData();
}
catch
{
JSUtil.MessageBox("删除失败,请稍后再试!");
}
}
//投票同步
else if (e.CommandName.Equals("lkbtnVote"))//作品数和投票数数据同步
{
try
{
int votecount = ;
ActivityInfo activity = ServiceFactory.ActivityInfoService.GetById(int.Parse(e.CommandArgument.ToString()));
//图文投票
if (activity.ActiveType == )
{
Dictionary<string, object> searchConditions = new Dictionary<string, object>();
searchConditions.Add("States", );
searchConditions.Add("ActivityId", Convert.ToInt32(e.CommandArgument.ToString()));
IList<WorkInfo> workInfo_list = ServiceFactory.WorkInfoService.QueryWorkInfo(searchConditions);
if (workInfo_list != null && workInfo_list.Count > )
{
for (int i = ; i < workInfo_list.Count; i++)
{
votecount += workInfo_list[i].TotalVoteCount;
}
}
activity.VoteCount = votecount; //投票数
activity.WorkCount = workInfo_list.Count;//作品数
ServiceFactory.ActivityInfoService.Update(activity);
}
else //文字投票 ToDo
{
}
JSUtil.MessageBox("同步成功!");
BindData();
}
catch
{
JSUtil.MessageBox("同步失败,请稍后再试!");
}
} //开启
else if (e.CommandName.Equals("lkbtnOpen"))//开启
{
try
{
ActivityInfo activity = ServiceFactory.ActivityInfoService.GetById(int.Parse(e.CommandArgument.ToString()));
if (activity.States == )
{
activity.States = ;
activity.UpdateTime = DateTime.Now;
}
else
{
activity.States = ;
activity.UpdateTime = DateTime.Now;
}
ServiceFactory.ActivityInfoService.Update(activity);
JSUtil.MessageBox("操作成功!");
BindData();
}
catch
{
JSUtil.MessageBox("操作失败,请稍后再试!");
}
}
}
protected void RptUsers_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//用FindControl方法找到模板中的Label控件
HiddenField HiddenField = (HiddenField)e.Row.FindControl("hid_states");// 0不开启 1 开启
LinkButton lkbtnOpen = (LinkButton)e.Row.FindControl("lkbtnOpen"); //开启按钮
if (HiddenField.Value == "")
{
lkbtnOpen.Text = "开启";
}
else
{
lkbtnOpen.Text = "关闭";
}
}
}
GridView的 OnRowDataBound 事件用法的更多相关文章
- GridView的 PreRender事件与 RowCreated、RowDataBound事件大乱斗
GridView的 PreRender事件与 RowCreated.RowDataBound事件大乱斗 之前写了几个范例,做了GridView的 PreRender事件与 RowCreated.Row ...
- jQuery 事件用法详解
jQuery 事件用法详解 目录 简介 实现原理 事件操作 绑定事件 解除事件 触发事件 事件委托 事件操作进阶 阻止默认事件 阻止事件传播 阻止事件向后执行 命名空间 自定义事件 事件队列 jque ...
- 网格视图(GridView)功能和用法
GridView用于在界面上按行.列分布的方式来显示多个组件.GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有很高的相似性,它们都是列 ...
- jQuery event,冒泡,默认事件用法
jQuery event,冒泡,默认事件用法 <%@ page language="java" import="java.util.*" pageEnco ...
- 【DevExpress】GridView的RowClick事件禁用Checkbox选择的解决办法
添加GridView的RowCellClick事件,代码如下 private void gvBoxMails_RowCellClick(object sender, DevExpress.XtraGr ...
- repeater的command事件用法
当Repeater里面循环控件时就会用到command, 是Repeater控件的原生事件用法 Repeater里面如果循环控件,控件的ID是会被改变的 repeater.itemcommand+= ...
- jquery get ($.get) 事件用法与分析
jquery get ($.get) 事件用法与分析 get() 方法通过远程 HTTP GET 请求载入信息.这是一个简单的 GET 请求功能以取代复杂 $.ajax .请求成功时可调用回调函数.如 ...
- GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除)
GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除) 之前有一个范例,相同的结果可以用两种作法来实践 [GridView] 资料系结表达 ...
- 关于gridview里加按钮事件的总结
1. onrowcommand="GridView1_RowCommand1" 在gridview申明时的属性里要有,然后找到闪电,双击 还有要把那个按钮行模板化,就是箭头里面的t ...
随机推荐
- 十五天精通WCF——第七天 Close和Abort到底该怎么用才对得起观众
一:文起缘由 写这一篇的目的源自于最近看同事在写wcf的时候,用特别感觉繁琐而且云里雾里的嵌套try catch来防止client抛出异常,特别感觉奇怪,就比如下面的代码. public void S ...
- T-SQL基础--TOP
理解TOP子句 众所周知,TOP子句可以通过控制返回行的数量来影响查询. 我们知道TOP子句能很容易的满足返回指定行数的子集,接下来有一些例子来展示什么情况下使用TOP子句来返回一个结果集: 你打算返 ...
- 论Top与ROW_NUMBER读取第一页的效率问题
10.29 前一段时间研究关于分页的问题,由于数据库属于百万级的,考虑了关于优化方面的问题.其中一个考虑是:第一页展现的频率肯定是最高的,所以我想第一页就使用Top N来读取. 这个想法本身是没有错, ...
- mysql workbench EER model 乱码
如图所示: 解决办法: Edit-->perference...-->Apperance 如下图
- Xcode同时兼容Xcode7和Xcode8,两个版本并存,也适用于先升8再安装7
先吐槽一下之前看到的一个教程,如下: 先在应用程序内,拷贝一份之前的xcode,然后再安装新版本,发现这种安装完成就是在之前上面迭代了 有木有?等于没任何作用 我这边就是不小心先升级了8,然后再安装 ...
- LNMP+zabbix分布式监控搭建及版本升级
LNMP+zabbix分布式监控搭建需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel l ...
- php群发邮件,用数据库做邮件队列
重思想,方法自己又写的,不能保证原文的都正确... Tutorial Tutorial – A tutorial for Mail_Queue Mail_Queue usage with a simp ...
- 关于TreeView的选中事件
在使用TreeView的选中事件时,发现,SelectAfter在第一次选中时触发,你再次点击时这个事件并不能引发它.所以找了找,发现有另两种解决办法. 最好的就是使用:NodeMouseClick, ...
- 基于Qt5.5.0的sql,C++备忘录软件的编写
我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download ...
- Spring MVC @ResponseBody返回中文字符串乱码问题
朋友做小项目练手的时候遇到的,着实让他郁闷够呛..这个问题的确很恶心.. 项目中引用的json包,直接用@ResponseBody注解返回json字符串..有关这个的乱码问题网上很多,各种花样各种转码 ...