Daniel_AndOne 2015-04-02 12:52 采纳率: 0%
浏览 2423

GridViewDataDropDownEditColumn嵌套ASPxComboBox

情景:
使用GridView自带的AddNewRow()添加一条记录到表A(listA是流水号,listB来自B表),弹出添加窗口中有一个字段的值时从另外一个表B动态选择的,效果如图1图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提示窗口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、如何在后台编写代码将数据绑定到“机器流水号”的下列列表中呢?我这里写的可能不对,谢谢!!
  • 写回答

1条回答

  • lhl_lqc 2015-04-03 01:56
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题