.net-GridViewDataDropDownEditColumn嵌套ASPxComboBox

问题描述

GridViewDataDropDownEditColumn嵌套ASPxComboBox

情景:
使用GridView自带的AddNewRow()添加一条记录到表A(listA是流水号,listB来自B表),弹出添加窗口中有一个字段的值时从另外一个表B动态选择的,效果如图1
为此在Page1.aspx中写了如下的代码

前台:

 <div id="divOperation" class="bulk-actions align-right">
                                        <dx:ASPxButton ID="btnAdd" runat="server" AutoPostBack="False" ClientIDMode="AutoID"
                                            Text=" 添 加 " UseSubmitBehavior="False" ClientInstanceName="btnAdd" CausesValidation="False"
                                            CssClass="buttonAqua" Theme="Aqua">
                                            <ClientSideEvents Click="function(s, e) {
               gvList.AddNewRow();
                }" />
                                        </dx:ASPxButton>
 </div>

<div class="main-grid">
                                        <dx:ASPxGridView ID="gvList" runat="server" AutoGenerateColumns="False" EnableCallBacks="True" ClientIDMode="AutoID"
                                            OnInitNewRow="gvList_InitNewRow" OnCellEditorInitialize="gvList_CellEditorInitialize"
                                            OnCustomErrorText="gvList_CustomErrorText" OnRowInserting="gvList_RowInserting"
                                            ClientInstanceName="gvList" Width="99.9%" KeyFieldName="ydyxlsh" Theme="Aqua">

                                            <Columns>
                                                <dx:GridViewCommandColumn ShowSelectCheckbox="True" VisibleIndex="0" Width="40px" FixedStyle="Left">
                                                    <ClearFilterButton Visible="True">
                                                    </ClearFilterButton>
                                                    <HeaderStyle HorizontalAlign="Center" />
                                                    <HeaderTemplate>
                                                        <dx:ASPxCheckBox ID="chkSelectAll" runat="server" ClientSideEvents-CheckedChanged="function(s, e) { gvList.SelectAllRowsOnPage(s.GetChecked()); }"
                                                            ToolTip="全选/取消全选" />
                                                    </HeaderTemplate>
                                                </dx:GridViewCommandColumn>
                                                <dx:GridViewDataTextColumn Caption="序号" VisibleIndex="1" Width="40px" FixedStyle="Left">
                                                    <EditFormSettings Visible="False" />
                                                    <DataItemTemplate>
                                                        <%# Container.ItemIndex+1%>
                                                    </DataItemTemplate>
                                                </dx:GridViewDataTextColumn>
                                                <dx:GridViewDataTextColumn Caption="记录流水号"  FieldName="ydyxlsh" Visible="False" VisibleIndex="4">
                                                    <Settings AllowAutoFilter="False" />
                                                </dx:GridViewDataTextColumn>
                                                 <dx:GridViewDataDropDownEditColumn  Caption="机器流水号" FieldName="cgjbxxlsh" VisibleIndex="8">
                                                      <Editformsettings Visible="True" VisibleIndex="1" />
                                                    <EditItemTemplate>
                                                        <dx:ASPxComboBox ID="cgDrop" runat="server" EnableCallbackMode="true" CallbackPageSize="10"
                                                            IncrementalFilteringMode="Contains" ValueType="System.String"
                                                            OnItemsRequestedByFilterCondition="cgDrop_ItemsRequestedByFilterCondition"
                                                            OnItemRequestedByValue="cgDrop_ItemRequestedByValue"
                                                            TextFormatString="{0}" DropDownStyle="DropDownList" Theme="Aqua">
                                                            <Columns>
                                                                <dx:ListBoxColumn FieldName="cgjbxxlsh" Caption="liushuihao" />
                                                                <dx:ListBoxColumn FieldName="sbbh" Caption="姓名" />
                                                            </Columns>
                                                        </dx:ASPxComboBox>
                                                    </EditItemTemplate>
                                                    <Settings AllowAutoFilter="False" />
                                                </dx:GridViewDataDropDownEditColumn>

                                                        </Columns>
                                                        <stylespopup>
                                                <EditForm>
                                                    <ModalBackground Opacity="20">
                                                    </ModalBackground>
                                                </EditForm>
                                            </stylespopup>
                                                        </dx:ASPxGridView>

                                    </div>

后台:

  protected void gvList_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)
        {
           //暂时未写
        }
                  protected void cgDrop_ItemsRequestedByFilterCondition(object source, ListEditItemsRequestedByFilterConditionEventArgs e)
        {
            ASPxComboBox aspCom1 = gvList.FindEditRowCellTemplateControl(gvList.Columns["cgjbxxlsh"] as GridViewDataColumn, "aspCom") as ASPxComboBox;
            DataSet ds = new BLL.tb_cgjbxx().GetList("1=1");   //ds中存放的是B表中的所有数据
            aspCom1.DataSource = ds;  //将数据绑定到下列列表中
            aspCom1.DataBind();
        }

        protected void cgDrop_ItemRequestedByValue(object source, ListEditItemRequestedByValueEventArgs e)
        {
            ASPxComboBox aspCom = gvList.FindEditRowCellTemplateControl(gvList.Columns["cgjbxxlsh"] as GridViewDataColumn, "aspCom") as ASPxComboBox;
            DataSet ds = new BLL.tb_cgjbxx().GetList("1=1");
            aspCom.DataSource = ds;
            aspCom.DataBind();
        }

主要问题如下:
1、点击“添加”弹出提示窗口2,即添加窗口无法正常弹出,如果将其中的下列代码删除,则可以正常弹出添加窗口。

   <dx:ASPxComboBox ID="cgDrop" runat="server" EnableCallbackMode="true" CallbackPageSize="10"
                                                            IncrementalFilteringMode="Contains" ValueType="System.String"
                                                            OnItemsRequestedByFilterCondition="cgDrop_ItemsRequestedByFilterCondition"
                                                            OnItemRequestedByValue="cgDrop_ItemRequestedByValue"
                                                            TextFormatString="{0}" DropDownStyle="DropDownList" Theme="Aqua">
                                                            <Columns>
                                                                <dx:ListBoxColumn FieldName="cgjbxxlsh" Caption="liushuihao" />
                                                                <dx:ListBoxColumn FieldName="sbbh" Caption="姓名" />
                                                            </Columns>
                                                        </dx:ASPxComboBox>
 2、如何在后台编写代码将数据绑定到“机器流水号”的下列列表中呢?我这里写的可能不对,谢谢!!

解决方案

这个错误是空指针异常,你调试下代码里有没有空值的情况。

时间: 2024-12-20 21:17:26

.net-GridViewDataDropDownEditColumn嵌套ASPxComboBox的相关文章

java 连接异常-java 启动jdbc 事务报错 嵌套异常

问题描述 java 启动jdbc 事务报错 嵌套异常 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC

hashmap-ListView 里面嵌套了一层ListView 如何写实体类呢

问题描述 ListView 里面嵌套了一层ListView 如何写实体类呢 左边的是别人用HashMap写的 右边是我想换成封装成实体类的时候 提示不能获取id 请问如何获取呢

博奥新能求救:html中的DIV嵌套一个DIV,怎么让里面的DIV剧中?

问题描述 博奥新能求救:html中的DIV嵌套一个DIV,怎么让里面的DIV剧中? 博奥新能在写代码的时候发现这个问题一直没办法解决,IE和360都不能,所以博奥新能不知道哪里出了问题,请大神帮忙解决一下.谢谢.. 解决方案 div剧中css代码div上下左右剧中 解决方案二: 可以尝试一下: 1.对需要水平居中的DIV层添加以下属性: margin-left: auto; margin-right: auto; 2.主要的样式定义如下: body {TEXT-ALIGN: center;} #

mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler

问题描述 mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler 如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Mapped Statements with nested result mappings cannot be safely used with a custom ResultHandle

MySQL实现嵌套集合模型

译文主要是介绍如何用MySQL来存储嵌套集合数据.在其中会增加一些自己的理解,也会删除掉一些自认为无用的废话. 这篇文章主要讲的是嵌套集合模型,所以邻接表不是本文的重点,简单略过就好. 也许这是原文地址,因为我也不知道这是不是原文. 介绍 什么是分层数据? 类似于树形结构,除了根节点和叶子节点外,所有节点都有用一个父节点和多个子节点. 那么,在MySQL中如何处理分层数据呢? 原文中介绍了两种分层结构模型:邻接表模型和嵌套集合模型. 邻接表模型(The Adjacency List Model)

嵌套管程锁死

原文链接    作者:Jakob Jenkov 译者:余绍亮    校对:丁一 嵌套管程锁死类似于死锁, 下面是一个嵌套管程锁死的场景: 线程1获得A对象的锁. 线程1获得对象B的锁(同时持有对象A的锁). 线程1决定等待另一个线程的信号再继续. 线程1调用B.wait(),从而释放了B对象上的锁,但仍然持有对象A的锁. 线程2需要同时持有对象A和对象B的锁,才能向线程1发信号. 线程2无法获得对象A上的锁,因为对象A上的锁当前正被线程1持有. 线程2一直被阻塞,等待线程1释放对象A上的锁. 线

timer-两个定时器嵌套调用问题

问题描述 两个定时器嵌套调用问题 if(message.trim().startsWith(ContactsEntry.CONTACT_RECEIVED_MESSGAE_PREFIX)){ //System.out.println("The contactTimer "+(null == contactTimer)+",The contactReloadTimer "+(null == contactReloadTimer)); messageCount++; if

c-拥有大量for嵌套的函数应该如何优化

问题描述 拥有大量for嵌套的函数应该如何优化 以使程序运行速度加快.我的程序里有14个for循环,for循环里面没有跳出的判断,必须全部运行完毕... 解决方案 for_each函数用法 解决方案二: 这就看你算法的能力了,如果你用的方法有系统函数替换,尽量用系统的,毕竟人家系统采用的算法不算最优,也算比较优秀了. 解决方案三: 1)优化算法,这个是投资小,见效快的,最有效的.基于算法的的,或者基于数学的.2)优化循环顺序,这个在代码写出后,做些调整.3)精简语句.或者用能够更快执行的语句替换

javascript-JavaScript 嵌套多层for循环 多少层会影响效率

问题描述 JavaScript 嵌套多层for循环 多少层会影响效率 现在做一个项目 需要嵌套很多曾for循环来显示前台 5层左右吧 中间还有if判断 这会很影响效率么 解决方案 循环本身不会影响效率(影响比较小,可以忽略),影响效率的是循环里面的执行语句,是不是影响效率要看有多少条语句被执行了多少次,比如说有1w层循环,每层循环执行一次,只有最里面一层一条语句,那么效率应该是很快的.假如说有1层循环,执行10条语句执行100w次效率应该也很低.PS:循环嵌套太深导致代码可读性较差 解决方案二: