FineUI 官方论坛

标题: (专业版2.3.0)求助:Grid表格右键菜单批量赋值模板列? [打印本页]

作者: Mr.Wu    时间: 2015-3-29 22:57
标题: (专业版2.3.0)求助:Grid表格右键菜单批量赋值模板列?
本帖最后由 Mr.Wu 于 2015-3-29 22:58 编辑

需求:在Grid右键点单菜单-》本页全填A,如何将本页的信息技术成绩全部填入A,而不用一个个手工输入?
[attach]7343[/attach]
右键菜单源码:
  1. <f:Menu ID="Menu1" runat="server">
  2.                     <f:MenuButton ID="SetAllRows_A" EnablePostBack="false" runat="server" Text="本页全填A">
  3.                         <Listeners>
  4.                             <f:Listener Event="click" Handler="onSetAllRows_A" />
  5.                         </Listeners>
  6.                     </f:MenuButton>
  7.                 </f:Menu>
复制代码
信息技术列源码:
  1.                         <f:TemplateField ColumnID="xinxi" HeaderText="信息技术"  TextAlign="center" HeaderTextAlign="center">
  2.                             <ItemTemplate>
  3.                                 <asp:TextBox runat="server" Width="100px" ID="tbXinxi" CssClass="xinxi" Required="true" Text='<%#Eval("xinxi") %>'></asp:TextBox>
  4.                             </ItemTemplate>
  5.                         </f:TemplateField>
复制代码
希望能得到大家的指点,谢谢。

附:本人测试时想按这个方法,发现没有执行相关代码:
        function onSetAllRows_A() {
            F(gridClientID).el.find('.f-grid-row .f-grid-tpl text.xinxi').each(function () {
                alert("hi");
            });
        }


作者: Mr.Wu    时间: 2015-3-30 00:13
这样貌似可以,不知大家有没有更好的办法?
  1.         function onSetAllRows_A() {
  2.             F(gridClientID).el.find('.f-grid-tpl input.xinxi').each(function () {
  3.                 $(this).val("A");
  4.             });
  5.         }
复制代码

作者: sanshi    时间: 2015-3-30 10:47
Mr.Wu 发表于 2015-3-30 00:13
这样貌似可以,不知大家有没有更好的办法?

这样就行了
作者: Mr.Wu    时间: 2015-3-30 11:12
sanshi 发表于 2015-3-30 10:47
这样就行了


请问一下老大:如果不是使用模板列,而是直接使用Grid编辑功能,如下面这样:
  1. <f:RenderField Width="100px" ColumnID="chengji" DataField="Name" FieldType="String"
  2.                     HeaderText="成绩">
  3.                     <Editor>
  4.                         <f:TextBox ID="tbxEditorChengji" Required="true" runat="server">
  5.                         </f:TextBox>
  6.                     </Editor>
  7.                 </f:RenderField>
复制代码
要怎样修改模板列那个each函数内容,才能达到批量赋值的效果呢?
请指点一下,谢谢了。

作者: sanshi    时间: 2015-3-30 11:55
参考示例:http://fineui.com/demo_pro/#/dem ... r_cell_dynamic.aspx
用 updateCellValue 来更新单元格的值
作者: Mr.Wu    时间: 2015-3-30 13:08
本帖最后由 Mr.Wu 于 2015-3-30 13:09 编辑
sanshi 发表于 2015-3-30 11:55
参考示例:http://fineui.com/demo_pro/#/demo_pro/grid/grid_editor_cell_dynamic.aspx
用 updateCellValue ...

老大,你这个例子是后台动态生成列,并且是横向赋值。
我想要的是纵向对Grid中某列全部行赋同样的一个值,好像你的例子不太一样吧
作者: sanshi    时间: 2015-3-30 15:30
Mr.Wu 发表于 2015-3-30 13:08
老大,你这个例子是后台动态生成列,并且是横向赋值。
我想要的是纵向对Grid中某列全部行赋同样的一个值, ...

参考示例:http://fineui.com/demo_pro/defau ... setcolumnvalue.aspx
作者: 舞柯庶    时间: 2015-3-31 15:13
函数
function onUpdateAtSchoolFalseClick()
  {
            resolveRows('AtSchool', false);  
   }

已经内置了吗? 看不到定义的地方?
作者: Mr.Wu    时间: 2015-3-31 15:27
舞柯庶 发表于 2015-3-31 15:13
函数
function onUpdateAtSchoolFalseClick()
  {

有定义啊,就在js里面:
  1. function resolveRows(columnId, newValue) {
  2.             var grid = F(gridClientID);
  3.             grid.getRowEls().each(function () {
  4.                 grid.updateCellValue(this, columnId, newValue);
  5.             });
  6.         }
复制代码





欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4