关于下拉列表数据过多导致IE10缓存溢出的解决方案

方案一:利用控件本身所携带的触发事件实时加载指定条数的选项

<telerik:RadComboBox ID="radcbbx_SystemName" runat="server" 
                                                    Width="99%"  Height="200px" HighlightTemplatedItems="true" 
                                                EnableLoadOnDemand="true" Filter="None" 
                                                AllowCustomText="True" CollapseDelay="1000" ExpandDelay="1000" 
                                                onitemsrequested="radcbbx_SystemName_ItemsRequested" >
                                                <HeaderTemplate>
                                                    <table style="width: 100%" cellspacing="0" cellpadding="0">
                                                        <tr>
                                                            <td style="width: 100%;">
                                                                系统名称
                                                            </td>
                                                            
                                                        </tr>
                                                    </table>
                                                </HeaderTemplate>
                                                <ItemTemplate >
                                                    <table style="width: 100%; height:20px;" cellspacing="0" cellpadding="0">
                                                        <tr>
                                                            <td style="width: 100%;">
                                                                <%# DataBinder.Eval(Container, "Attributes['System_BaseName']")%>
                                                            </td>
                                                            
                                                        </tr>
                                                    </table>
                                                </ItemTemplate>
                                            </telerik:RadComboBox>

 

后台CS文件:

protected void radcbbx_SystemName_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
        {
            if (e.Text != "")
            {
                DataTable dt = new DataTable();
                try
                {
                    string strWhere = " and System_BaseName like '%" + e.Text.Trim() + "%' ";
                    dt = sysbaseInfo.GetSystemBaseInfoIDandName(strWhere);

                    foreach (DataRow dataRow in dt.Rows)
                    {
                        RadComboBoxItem item = new RadComboBoxItem();
                        string strName = dataRow["System_BaseName"].ToString();
                        string strId = dataRow["System_BaseID"].ToString();

                        item.Text = strName.Trim();
                        item.Value = strId;
                        item.Attributes.Add("System_BaseName", strName.Trim());
                        radcbbx_SystemName.Items.Add(item);
                        item.DataBind();
                    }


                }
                catch (Exception Ex)
                {
                    SysLog sl = new SysLog();
                    sl.WriteErrorLog("0", "获取立项申请页面关联系统列表失败!", Ex);
                }
                finally
                {
                    dt.Dispose();
                }

            }

        }

  

 

 

posted @ 2014-03-27 17:25  2012苦手  阅读(353)  评论(0)    收藏  举报