100分求repeater模板列实现多行编辑和一次性提交多行编辑后的数据,最好能给出样例代码

时间:2021-03-05 16:16:36
目前的项目实现的是repeater单行编辑,即用户点模板列中的“编辑”按钮后,所在行变成编辑状态,点“更新”或“取消”后恢复原来的状态。

几个项目中的用户对此颇多抱怨,希望能像Excel一样,在repeater初始化显示时就是多行编辑状态,用户编辑完多行数据后,点一次“保存”按钮就可以将数据写入到数据库中。

请教这里有实现过类似方案的兄弟帮助解决,最好能给出样例代码,谢谢!

10 个解决方案

#1


http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html

#2


所有的数据源控件都不支持同时编辑多行的功能。

#3


如果你想实现这样的功能只能通过javascript+div+ajax来实现。

#4


用模版列也能实现类似你所说的功能。
100分求repeater模板列实现多行编辑和一次性提交多行编辑后的数据,最好能给出样例代码

代码:

<asp:Repeater ID="Repeater1" runat="server"> 
        <HeaderTemplate> 
        <table border="1" cellpadding="0" cellspacing="0"> 
    <tr><td>编号</td><td>真实姓名</td><td>年龄</td><td>性别</td><td>手机</td><td>电话</td><td>电子邮件</td></tr> 
        </HeaderTemplate> 
        <ItemTemplate> 
        <tr><td><%#Eval("UserID") %></td><td><%#Eval("RealName") %></td><td><%#Eval("Age") %></td><td><%#bool.Parse(Eval("sex").ToString())?"男":"<font color='green'>女</font>" %></td><td><%#Eval("Mobile") %></td><td><%#Eval("Phone") %></td><td><%#Eval("Email") %></td></tr> 
        </ItemTemplate> 
        <AlternatingItemTemplate> 
        <tr><td><input type="text" readonly="readonly" value='<%#Eval("UserId") %>' size="2" /></td><td><%#Eval("RealName") %></td><td><%#Eval("Age") %></td><td><%#bool.Parse(Eval("sex").ToString())?"男":"<font color='green'>女</font>" %></td><td><%#Eval("Mobile") %></td><td><%#Eval("Phone") %></td><td><%#Eval("Email") %></td></tr> 
        </AlternatingItemTemplate> 
        <FooterTemplate> 
        </table> 
        </FooterTemplate> 
        </asp:Repeater> 

#5


至少我没实现过,这能实现吗,从没见过

#6


asp.net夜话之八:数据绑定控件
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。

#7


在显示的时候都使用了模版列,对于文本字段显示为textbox,对于true/false值显示为checkbox,对于多项值显示为dropdownlist,堆它们的属性进行绑定,就能实现类似的效果了。

#8


引用 1 楼 billlyh 的回复:
http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html


谢谢这位兄弟的热心,不过你没看清我的主贴内容,你给的是单行编辑的例子,这个我已经在贴子里说过已经实现了,现在想实现的是repeater在初始化时就是显示多行模板列的可编辑状态,然后想通过一个保存按钮来一次性更新多行编辑后的数据。

#9


用我的思路和我给的例子差不多能实现你那种效果。
但是要完全达到恐怕要用Activex了。

#10


进来学习了,谢谢各位!!!!!!

#1


http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html

#2


所有的数据源控件都不支持同时编辑多行的功能。

#3


如果你想实现这样的功能只能通过javascript+div+ajax来实现。

#4


用模版列也能实现类似你所说的功能。
100分求repeater模板列实现多行编辑和一次性提交多行编辑后的数据,最好能给出样例代码

代码:

<asp:Repeater ID="Repeater1" runat="server"> 
        <HeaderTemplate> 
        <table border="1" cellpadding="0" cellspacing="0"> 
    <tr><td>编号</td><td>真实姓名</td><td>年龄</td><td>性别</td><td>手机</td><td>电话</td><td>电子邮件</td></tr> 
        </HeaderTemplate> 
        <ItemTemplate> 
        <tr><td><%#Eval("UserID") %></td><td><%#Eval("RealName") %></td><td><%#Eval("Age") %></td><td><%#bool.Parse(Eval("sex").ToString())?"男":"<font color='green'>女</font>" %></td><td><%#Eval("Mobile") %></td><td><%#Eval("Phone") %></td><td><%#Eval("Email") %></td></tr> 
        </ItemTemplate> 
        <AlternatingItemTemplate> 
        <tr><td><input type="text" readonly="readonly" value='<%#Eval("UserId") %>' size="2" /></td><td><%#Eval("RealName") %></td><td><%#Eval("Age") %></td><td><%#bool.Parse(Eval("sex").ToString())?"男":"<font color='green'>女</font>" %></td><td><%#Eval("Mobile") %></td><td><%#Eval("Phone") %></td><td><%#Eval("Email") %></td></tr> 
        </AlternatingItemTemplate> 
        <FooterTemplate> 
        </table> 
        </FooterTemplate> 
        </asp:Repeater> 

#5


至少我没实现过,这能实现吗,从没见过

#6


asp.net夜话之八:数据绑定控件
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。

#7


在显示的时候都使用了模版列,对于文本字段显示为textbox,对于true/false值显示为checkbox,对于多项值显示为dropdownlist,堆它们的属性进行绑定,就能实现类似的效果了。

#8


引用 1 楼 billlyh 的回复:
http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html


谢谢这位兄弟的热心,不过你没看清我的主贴内容,你给的是单行编辑的例子,这个我已经在贴子里说过已经实现了,现在想实现的是repeater在初始化时就是显示多行模板列的可编辑状态,然后想通过一个保存按钮来一次性更新多行编辑后的数据。

#9


用我的思路和我给的例子差不多能实现你那种效果。
但是要完全达到恐怕要用Activex了。

#10


进来学习了,谢谢各位!!!!!!