几个项目中的用户对此颇多抱怨,希望能像Excel一样,在repeater初始化显示时就是多行编辑状态,用户编辑完多行数据后,点一次“保存”按钮就可以将数据写入到数据库中。
请教这里有实现过类似方案的兄弟帮助解决,最好能给出样例代码,谢谢!
10 个解决方案
#1
http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html
#2
所有的数据源控件都不支持同时编辑多行的功能。
#3
如果你想实现这样的功能只能通过javascript+div+ajax来实现。
#4
用模版列也能实现类似你所说的功能。
代码:
代码:
<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接口的类的实例。
在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
谢谢这位兄弟的热心,不过你没看清我的主贴内容,你给的是单行编辑的例子,这个我已经在贴子里说过已经实现了,现在想实现的是repeater在初始化时就是显示多行模板列的可编辑状态,然后想通过一个保存按钮来一次性更新多行编辑后的数据。
#9
用我的思路和我给的例子差不多能实现你那种效果。
但是要完全达到恐怕要用Activex了。
但是要完全达到恐怕要用Activex了。
#10
进来学习了,谢谢各位!!!!!!
#1
http://hi.baidu.com/jia818915/blog/item/ae4c9386cb046f3b67096ef8.html
#2
所有的数据源控件都不支持同时编辑多行的功能。
#3
如果你想实现这样的功能只能通过javascript+div+ajax来实现。
#4
用模版列也能实现类似你所说的功能。
代码:
代码:
<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接口的类的实例。
在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
谢谢这位兄弟的热心,不过你没看清我的主贴内容,你给的是单行编辑的例子,这个我已经在贴子里说过已经实现了,现在想实现的是repeater在初始化时就是显示多行模板列的可编辑状态,然后想通过一个保存按钮来一次性更新多行编辑后的数据。
#9
用我的思路和我给的例子差不多能实现你那种效果。
但是要完全达到恐怕要用Activex了。
但是要完全达到恐怕要用Activex了。
#10
进来学习了,谢谢各位!!!!!!