datagrid 中编辑模板列的问题

本文探讨了在Datagrid中使用LinkButton时遇到的问题:点击按钮导致页面刷新。文章提供了几种解决方案,包括使用客户端脚本替代服务器端控件以避免页面刷新,并展示了如何通过JavaScript实现弹窗功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在datagrid中放入了一列模板列,为linkbutton,但是点击这个linkbutton,弹出一个新的窗口的时候,原来的页面好像有提交给服务器了一次,好像页面有刷新了一次,不知道是为什么?怎么样让原来的页面不刷新,提交就是定位在原地?谢谢高人指点
yourLinkButton.Attributes.Add("onclick","window.open()......;return   false;";
你的linkbutton是runat='server',肯定要刷新页面的,你可以使用客户端脚本完成类似功能,如果仅仅弹出一个窗口这么简单。比如用<a   href="#"   onclick="javascript:window.open('SomePage.aspx');">Link   Text</a>
不要用服务器端控件用客户端的写
<a   href='abc.aspx?id=<%#   DataBinder.Eval(Container.DataItem,"Id")%>Link   Text</a>
<a href ='disp.aspx?mailname=<%#DataBinder.Eval(Container.DataItem,"body")%>' target =_blank  >编辑</a>

DataBinder.Eval(Container.DataItem,"newtitle")如何做到对这个绑定只取其中15个字符的截取

Text='<%# DataBinder.Eval(Container.DataItem,"content").ToString().Length>15?DataBinder.Eval(Container.DataItem,"content").ToString().Substring(0,15)+"...":DataBinder.Eval(Container.DataItem,"content").ToString()%>' ToolTip='<%#DataBinder.Eval(Container.DataItem,"content")%>'

ToolTip='<%#DataBinder.Eval(Container.DataItem,"content")%>'

DataBinder.Eval(Container.DataItem,"newtitle")如何做到对这个绑定到下拉列表中(4个选项)
SelectedIndex='<%#DataBinder.Eval(Container.DataItem,"tixtype").ToString().Trim()=="按年提醒"?0:(DataBinder.Eval(Container.DataItem,"tixtype").ToString().Trim()=="按月提醒"?1:(DataBinder.Eval(Container.DataItem,"tixtype").ToString().Trim()=="按天提醒"?2:3))%>'

取出日期字段中的日期部分
Text='<%#DataBinder.Eval(Container.DataItem,"tixtime","{0:yyyy-MM-dd}").ToString()%>'
取出日期字段中的时间部分
Text='<%#DataBinder.Eval(Container.DataItem,"tixtime","{0:HH:mm:ss}").ToString()%>'

hyperLink绑定事件例子
Text='<%# DataBinder.Eval(Container.DataItem,"content").ToString().Length>15?DataBinder.Eval(Container.DataItem,"content").ToString().Substring(0,15)+"...":DataBinder.Eval(Container.DataItem,"content").ToString() %>' ToolTip='<%# DataBinder.Eval(Container.DataItem,"content").ToString() %>' NavigateUrl='<%#"read.aspx?diaryid="+DataBinder.Eval(Container.DataItem,"dia_id").ToString()+"&username="+Request.QueryString["name"].Trim()%>'
NavigateUrl ='<%#"editworklog.aspx?DIA_ID="+DataBinder.Eval(Container.DataItem,"DIA_ID").ToString()%>'

ImageUrl='<%#InternalSMS.SMSTypeIcoUrl(DataBinder.Eval(Container.DataItem, "MSG_TYPE").ToString())%>'

NavigateUrl ='<%#editpole(DataBinder.Eval(Container.DataItem, "USER_PRIV").ToString())%>'
ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID").ToString()) %>'

protected string FormatURL(object strArgument)
{
    return "ReadImage.aspx?id=" + strArgument.ToString();
}




判断绑定字段是否为空
(DataBinder.Eval (Container.DataItem,"p_hgl1"))   ==DBNull.Value
1. 基类说明 1.1 基类结构图 1.2 基类说明 1.2.1 BaseEditClass BaseEditClass是所有单表编辑功能的基类。BaseEditClass从NSGForm继承,以处理统一的界面和字体风格。 BaseEditClass抽象出了编辑类功能通用的方法并定义为基类方法,以便子类继承,并增加自己的代码。  自定义属性 名称 说明 DataTable 功能所编辑的数据表 DataState 功能所处的状态:浏览(dsBrowse)、新增(dsInsert)编辑(dsEdit) BatchSave 是否批量提交数据表,默认为False DeleteWarn 在删除记录时是否提示,默认为True  自定义方法 名称 说明 FormInit 在FormLoad时被调用,具体功能中可重载该方法添加自定义的初始化代码 PostData 具体功能中需要重载该方法,并调用具体的TableAdapter.Update(row),以保存数据至数据库。 RefreshData 统一的刷新数据表过程,具体功能中需要重载该方法,并调用具体的TableAdapter.Fill(DataTable),以查询数据 DataValid 统一的数据验证方法,在保存数据前被调用。具体功能中可重载该方法添加自定义的数据校验代码 NewRecord 在新增数据时被调用,在具体过程中可重载该方法添加自定义的新增记录默认值 SaveData 保存数据的方法,具体功能中调用该过程保存数据 DeleteData 删除数据的方法,具体功能中调用该过程删除数据 CancelData 取消数据修改的方法,具体功能中调用该过程取消数据修改 1.2.2 BaseGridEdit BaseGridEdit是所有直接使用DataGridView进行编辑的功能的基类。BaseGridEdit从BaseEditClass继承。 自定义属性 名称 说明 Grid 编辑所用的DataGridView 自定义方法 名称 说明 RecordValid 统一的数据验证方法,在单条保存数据前被调用。具体功能中可重载该方法添加自定义的数据校验代码 1.2.3 BaseGridEditForm BaseGridEditForm是所有直接使用DataGridView进行编辑的功能的模板。所有直接使用DataGridView进行编辑的功能都需要从该模板拷贝后进行修改。 2. 模板使用方法 2.1 BaseGridEditForm 使用BaseGridEditForm需要按以下四步操作就可以得到需要的功能。 一、 先从BaseGridEditForm拷贝文件到工程后修改类名、命名空间 二、 在项目的数据集中增加TableAdapter,以查询需要维护的指定的数据表 三、 将DataGridView绑定到新增的数据表 四、 修改以下基类方法 名称 说明 构造方法 增加”DataTable属性=新增数据表”的代码 FormInit 增加需要的Form初始化代码,如RefreshData以获得数据 PostData 增加一行代码:新增的TableAdapter.Update(row) RefreshData 增加使用新增TableAdapter.Fill(DataTable)的代码,以获得查询数据。注意:代码需要写在IsRefreshData = true;和 IsRefreshData = false;语句的中间 RecordValid 增加自定义的数据校验语句。 NewRecord 增加自定义的新增数据默认值代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值