社区
JavaScript
帖子详情
ASP.NET中如何实现repeater控件的单元格内数据直接编辑并保存至数据库
vita1982
2016-11-16 11:07:31
ASP.NET中如何实现repeater控件内显示的数据在单元格内(即:<td>)直接可编辑,回车保存。不要每次选中行再点击编辑按钮弹出框编辑数据,同时获得各个单元格的数据项信息,等数据都添加完成后,点击保存按钮,取得全部数据更新数据库(sqlserver )。
网上查有些jquery控件可实现相应功能,但没找到完整的可参考实例,这块不熟悉,还望高人指教,谢谢~
...全文
562
4
打赏
收藏
ASP.NET中如何实现repeater控件的单元格内数据直接编辑并保存至数据库
ASP.NET中如何实现repeater控件内显示的数据在单元格内(即:)直接可编辑,回车保存。不要每次选中行再点击编辑按钮弹出框编辑数据,同时获得各个单元格的数据项信息,等数据都添加完成后,点击保存按钮,取得全部数据更新数据库(sqlserver )。 网上查有些jquery控件可实现相应功能,但没找到完整的可参考实例,这块不熟悉,还望高人指教,谢谢~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ChengCCccccc
2020-11-02
打赏
举报
回复
<div class="form-group">
<div class="col-md-12">
<div class="table-responsive" style="margin-bottom: 0px;">
<table border="0" cellpadding="0" cellspacing="1" class="table table-striped" style="min-width: 700px;">
<tr id="listHead" runat="server">
<th>PR Number</th>
<th>PR明细</th>
<th style="width: 70px;">数量</th>
<th style="width: 200px; text-align: right; padding-right: 30px;">单价<asp:Label ID="CurrencyView" runat="server" Text=""></asp:Label></th>
<th style="width: 160px;"> </th>
</tr>
<asp:Repeater ID="rep_Details" runat="server" OnItemDataBound="rep_Details_ItemDataBound">
<ItemTemplate>
<tr>
<td align="center" style="vertical-align: middle;">
<span style="display:none;"><asp:Label ID="lblContractDetailID" runat="server" Visible="false" Text='<%#Eval("ID")%>'></asp:Label></span>
<asp:Label ID="lblPRNumbers" runat="server" Text='<%#Eval("PRNumbers")%>'></asp:Label>
<asp:TextBox ID="r_PRNumbers" runat="server" Text='<%#Eval("PRNumbers")%>' Visible="false" ValidationGroup="rowEdit" ToolTip="PR Numbers"></asp:TextBox>
</td>
<td align="left" style="vertical-align: middle;">
<asp:Label ID="lblPRItem" runat="server" Text='<%#Eval("PRItem")%>'></asp:Label>
<asp:TextBox ID="r_PRItem" runat="server" Text='<%#Eval("PRItem")%>' Visible="false" ValidationGroup="rowEdit" ToolTip="PR明细"></asp:TextBox>
</td>
<td align="center" style="vertical-align: middle;">
<asp:Label ID="lblCount" runat="server" Text='<%#Eval("ContractCount")%>'></asp:Label>
<asp:TextBox ID="r_ContractCount" runat="server" Text='<%#Eval("ContractCount")%>' Visible="false" ValidationGroup="rowEdit" ToolTip="数量"></asp:TextBox>
</td>
<td align="right" style="text-align: right; padding-right: 30px; vertical-align: middle;">
<asp:Label ID="lblUnitPrice" runat="server" Text='<%#Eval("ContractUnitPriceView")%>'></asp:Label>
<asp:TextBox ID="r_ContractUnitPrice" runat="server" Text='<%#Eval("ContractUnitPrice")%>' Visible="false" ValidationGroup="rowEdit" ToolTip="单价"></asp:TextBox>
</td>
<td align="center" style="vertical-align: middle;">
<%-- https://www.cnblogs.com/lonelyxmas/p/3569810.html
UpdatePanel Repeater内LinkButton造成页面刷新问题
给LinkButton添加属性ClientIDMode="AutoID"
--%>
<asp:LinkButton ID="btnEditRow" runat="server" ClientIDMode="AutoID" OnClick="btnEditRow_Click" CommandArgument='<%#Eval("ID")%>'><img src="img/edit.png" alt="" /><span class="btnText">修改</span></asp:LinkButton>
<asp:LinkButton ID="btnDeleteRow" runat="server" ClientIDMode="AutoID" OnClientClick="javascript:return confirm('确认删除此条明细?');" OnClick="btnDeleteRow_Click" CommandArgument='<%#Eval("ID")%>'><img src="img/delete.png" alt="" /><span class="btnText">删除</span></asp:LinkButton>
<asp:LinkButton ID="btnConfirmUpdate" runat="server" ClientIDMode="AutoID" OnClick="btnConfirmUpdate_Click" CommandArgument='<%#Eval("ID")%>' Visible="false"><img src="img/ok.png" alt="" /><span class="btnText">确认</span></asp:LinkButton>
<asp:LinkButton ID="btnCancelUpdate" runat="server" ClientIDMode="AutoID" OnClick="btnCancelUpdate_Click" CommandArgument='<%#Eval("ID")%>' Visible="false"><img src="img/cancel.png" alt="" /><span class="btnText">取消</span></asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<tr id="trNewRow" runat="server" visible="false" class="form-inline">
<td style="vertical-align: bottom;">
<asp:TextBox ID="PRNumbers" runat="server" ToolTip="PR Numbers" ValidationGroup="PRNewRow"></asp:TextBox>
</td>
<td>
<div class="col-lg-12" style="padding: 0px;">
<asp:TextBox ID="PRItem" runat="server" ValidationGroup="PRNewRow" ToolTip="PR明细" placeholder="请填写"></asp:TextBox>
</div>
</td>
<td style="vertical-align: bottom;">
<asp:TextBox ID="ContractCount" runat="server" ToolTip="数量" ValidationGroup="PRNewRow"></asp:TextBox>
</td>
<td style="vertical-align: bottom;">
<asp:TextBox ID="ContractUnitPrice" runat="server" ToolTip="单价" ValidationGroup="PRNewRow"></asp:TextBox>
</td>
<td style="vertical-align: bottom;">
<asp:LinkButton ID="btnAdd" runat="server" OnClick="btnAdd_Click"><img src="img/OK.png" alt="" /><span class="btnText">保存</span></asp:LinkButton>
<asp:LinkButton ID="btnCancel" runat="server" OnClick="btnCancel_Click"><span class="btnText"><img src="img/cancel.png" alt="" />取消</span></asp:LinkButton>
</td>
</tr>
<tr>
<td align="center" style="vertical-align: bottom;">
<asp:LinkButton ID="btnAddNewRow" runat="server" OnClick="btnAddNewRow_Click"><img src="img/add.png" alt="" /><span class="btnText">添加项目</span></asp:LinkButton>
</td>
<td colspan="4" align="right"> </td>
</tr>
</table>
</div>
</div>
</div>
protected void AddNewRowOrCancel(bool showRow)
{
trNewRow.Visible = showRow;
btnAddNewRow.Visible = !trNewRow.Visible;
ContractCount.Text = "";
ContractUnitPrice.Text = "";
PRNumbers.Text = "";
PRItem.Text = "";
}
protected void btnAddNewRow_Click(object sender, EventArgs e)
{
AddNewRowOrCancel(true);
}
protected void btnDeleteRow_Click(object sender, EventArgs e)
{
try
{
if (!(sender is LinkButton) || String.IsNullOrEmpty(((LinkButton)sender).CommandArgument))
{
return;
}
string detailid = ((LinkButton)sender).CommandArgument;
DataTable dtDetail = (DataTable)ViewState["dtDetail"];
DataRow deleteRow = dtDetail.Select("ID = " + detailid)[0];
if (dtDetail.Columns.Contains("ID"))
{
if (IntParse(deleteRow["ID"].ToString()) > 0)
{
int i = new VenderContractDetailDAL().DeleteDetail(deleteRow["ID"].ToString());
}
}
dtDetail.Rows.Remove(deleteRow);
ViewState["dtDetail"] = dtDetail;
rep_Details.DataSource = dtDetail;
rep_Details.DataBind();
CalculateAmount();
LoadApprovelList();
}
catch (Exception ex)
{
throw;
}
}
protected void rep_Details_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
try
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.Item.FindControl("btnEditRow") != null)
{
LinkButton btnEditRow = (LinkButton)e.Item.FindControl("btnEditRow");
btnEditRow.Visible
= String.IsNullOrEmpty(SubmitDate.Text.Trim())
&& CheckRole(RoleCmd.Update);
}
if (e.Item.FindControl("btn
ChengCCccccc
2020-11-02
打赏
举报
回复
动态生成,然后把值保存在DATATABLE中
斯洛文尼亚旅游
2016-11-17
打赏
举报
回复
http://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&theme=default&dir=ltr&pitem= 看“Cell Editing in DataGrid”示例,不过服务器端还得你自己写代码
slwsss
2016-11-16
打赏
举报
回复
页面效果参考
数据更新用ajax
asp.net
总结之
Repeater
,DataList和DataGrid
从项目开始到结束纯的用在此项目的时间为半个月的时间,其
中
将视频
中
讲到的大例子做了一遍,过程还是很可贵的,在这个视频
中
主要学到了HTML
控件
和WEB
控件
,知道了使用动态
控件
和静态
控件
的利弊,了解了这两种
控件
的区别和联系,之后我们又深入的结合例子学习很多具体的
控件
,其实与之前我们接触的大同小异,还有几个我们之前没有接触过的,给我印象最深的就是那六个用起来很方便也很常见的验证
控件
还有那三个模板
控件
,这里
【
ASP.NET
】第九课——使用DataList
控件
和
Repeater
控件
绑定
数据
GridView 和 DetailsView
控件
一般合作使用,实 现“列表/详细”功能。DetailsView
控件
和 GridView
控件
有很多相似之处,但是 DetailsView
控件
有添加
数据
的功能,而 GridView 没有。
ASP.Net
Web
中
Repeater
怎么删除指定行
使用OnItemCommand事件 首先附上相关的代码 <asp:
Repeater
ID="
Repeater
1" runat="server" OnItemCommand="
Repeater
1_ItemCommand"> <ItemTemplate> <table> ...
ASP.NET
——GridView
控件
绑定
数据
ASP.NET
提供了许多种
数据
服务器
控件
,用于在Web页面
中
显示
数据
库
中
的表
数据
,GridView
控件
就是其
中
之一。这个
控件
和我们以前学过的DataGridView
控件
几乎是一样的,所以对GridView
控件
我们也并不陌生,下面简单介绍一下它的使用。 前台: 在工具箱
中
找到GridView
控件
,并把它拖拽到代码
编辑
区域。 第一步,进入设计界
aspx
repeater
用法_详解
ASP.NET
数据
绑定操作
中
Repeater
控件
的用法
一、绑定
控件
之
Repeater
.NET封装了多种
数据
绑定
控件
,诸如GridView、DataList等但该篇文章将会从
Repeater
入手,因为
Repeater
只提供了基本的
数据
绑定模板,没有内置其它分页等功能,所以它是最原始的
数据
绑定
控件
,只要能够熟练运用
Repeater
控件
其它的绑定
控件
也就很简单了。1、
Repeater
简介
Repeater
控件
是基本模板化
数据
列表。 它不像GridView控...
JavaScript
87,987
社区成员
224,684
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章