社区
JavaScript
帖子详情
ASP.NET中如何实现repeater控件的单元格内数据直接编辑并保存至数据库
vita1982
2016-11-16 11:07:31
ASP.NET中如何实现repeater控件内显示的数据在单元格内(即:<td>)直接可编辑,回车保存。不要每次选中行再点击编辑按钮弹出框编辑数据,同时获得各个单元格的数据项信息,等数据都添加完成后,点击保存按钮,取得全部数据更新数据库(sqlserver )。
网上查有些jquery控件可实现相应功能,但没找到完整的可参考实例,这块不熟悉,还望高人指教,谢谢~
...全文
450
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中
Go 旅城通票
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
常用Web服务器
控
件
4.1 使用
控
件显示文本 ...实例 显示长日期
格
式时间 实例 显示金额
格
式文本 4.2 使用
控
件显示图片 实例 显示验证码图片 实例 动态显示用户头像 实例 使用网页对话框显示图片 ...实例
编辑
Repeater
控
件标识商品信息
asp
.
net
知识库
在
ASP
.
NET
中
使用WINDOWS验证方式连接SQL SERVER
数据
库 改进ADO.
Net
数据
库访问方式
ASP
.
NET
2.0 绑定高级技巧 简单实用的DataSet更新
数据
库的类+总结 [ADO.
NET
]由
数据
库触发器引发的问题 为
ASP
.
NET
封装的SQL
数据
库...
ASP
.
NET
中
GridView和
Repeater
重复
数据
如何合并
这几天做一个项目有用到表
格
显示
数据
的地方,客户要求重复的
数据
列需要合并,就总结了一下GridView 和
Repeater
关于重复
数据
合并的方法。 效果图如下 : GridView : 前台代码 : <
asp
ID=gvIncome runat=...
《
ASP
.
NET
与
数据
库程序设计》
5-3
ASP
.
NET
如何结合
数据
库 5-3-1关于ADO.
NET
5-3-2与
数据
库无关的DataSet DataSet的内容 DateSet的来源(自行建立) DateSet的来源(取用
数据
库)
控
制项结合DataSet 回存至来源 5-3-3...
Asp
.
net
高级编程学习经验
文档包内容: 1.通过自己建立DataTable对象,往...41.泛型与类结合使用来绑定
数据
,并添加到
数据
控
件
中
42.
数据
读取到treeview
中
,指定日期下添加相应时间 这些都是我自己学习积累的宝贵经验,希望对大家能有所帮助!
JavaScript
87,921
社区成员
224,619
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章