ASPxSplitter

分隔控件,

与ASPxNavBar控件一起结合使用,实现点导航,在右边显示导航网页的效果

关键部分己标出


           
                ShowCollapseBackwardButton="True">
                   
                   

    AllowSelectItem="true" Target="contentUrlPane">
      
        
           
            Selected="true" >
           
        
        
        
           
            
            
            
           
        
      
   



                   
               
               
                   


               
           
       

其中因为选中了ASPxNavBar1的AllowSelectItem="true"所以,必须有一项是被选中状态

Selected="true" >

C#:

 protected void Page_Load(object sender, EventArgs e)
    {
        ASPxSplitter1.GetPaneByName("ContentUrlPane").ContentUrl =
           ASPxNavBar1.SelectedItem.NavigateUrl;

    }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23109131/viewspace-688499/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23109131/viewspace-688499/

### 使用 CallbackPanel 优化 DevExpress ASP.NET 联动控件的性能 在 ASP.NET WebForms 应用中,当多个控件之间存在联动关系(如部门选择后更新员工下拉框),频繁的页面回发会导致性能下降。DevExpress 提供了 `CallbackPanel` 控件,通过局部回调(而非完整页面回发)来实现更高效的 UI 更新,从而提升用户体验和响应速度。 #### CallbackPanel 的基本原理 `CallbackPanel` 是 DevExpress 提供的一种基于回调机制的容器控件,它能够在不刷新整个页面的情况下,仅更新其内部的内容。与传统的 `UpdatePanel` 类似,但 `CallbackPanel` 使用的是 DevExpress 自定义的回调协议,通常具有更优的性能表现和更灵活的客户端控制能力[^1]。 #### 实现联动控件优化的步骤 1. **将联动控件放置在 CallbackPanel 内部** 为了实现联动效果,通常将依赖控件(如员工下拉框)放置在 `CallbackPanel` 中,而触发控件(如部门下拉框)则放置在外部或同一容器中。 ```aspx <dx:ASPxCallbackPanel ID="callbackPanel" runat="server" OnCallback="callbackPanel_Callback"> <PanelCollection> <dx:PanelContent runat="server"> <dx:ASPxComboBox ID="cmbEmployee" runat="server" /> </dx:PanelContent> </PanelCollection> </dx:ASPxCallbackPanel> ``` 2. **在触发控件的事件中执行回调** 当部门选择发生变化时,调用 `CallbackPanel` 的 `PerformCallback` 方法,传递必要的参数(如部门 ID)以触发数据更新。 ```aspx <dx:ASPxComboBox ID="cmbDepartment" runat="server" OnSelectedIndexChanged="cmbDepartment_SelectedIndexChanged" AutoPostBack="true"> </dx:ASPxComboBox> ``` ```csharp protected void cmbDepartment_SelectedIndexChanged(object sender, EventArgs e) { int departmentId = Convert.ToInt32(cmbDepartment.Value); callbackPanel.JSProperties["cpDepartmentId"] = departmentId; callbackPanel.PerformCallback(); } ``` 3. **在 CallbackPanel 的回调事件中更新数据源** 在 `CallbackPanel` 的 `OnCallback` 事件中获取传递的参数,并更新员工下拉框的数据源。 ```csharp protected void callbackPanel_Callback(object sender, CallbackEventArgsBase e) { int departmentId = Convert.ToInt32(callbackPanel.JSProperties["cpDepartmentId"]); var employees = GetEmployeesByDepartment(departmentId); cmbEmployee.DataSource = employees; cmbEmployee.TextField = "EmployeeName"; cmbEmployee.ValueField = "EmployeeId"; cmbEmployee.DataBind(); if (employees.Count > 0) { cmbEmployee.SelectedIndex = 0; } } ``` 4. **使用客户端脚本提升交互体验** 为确保用户在联动过程中获得流畅体验,可结合 `ASPxComboBox` 的客户端事件(如 `SelectedIndexChanged`)与 `CallbackPanel` 的 `PerformCallback` 方法。 ```javascript function onDepartmentChange(s, e) { var departmentId = s.GetValue(); var callbackPanel = ASPxClientControl.GetControlCollection().GetByName("callbackPanel"); callbackPanel.PerformCallback(departmentId); } ``` #### 优势与适用场景 - **减少页面刷新**:通过局部更新,避免不必要的页面重载,提升响应速度。 - **降低带宽消耗**:仅传输必要的数据,减少网络传输量。 - **增强用户体验**:联动控件之间的切换更加流畅,用户交互更自然。 #### 注意事项 - 确保每次回调后数据源正确绑定并设置默认选中项。 - 避免在回调过程中执行耗时操作,影响响应速度。 - 若联动控件较多,可考虑使用 `ASPxSplitter` 或 `ASPxPageControl` 分区管理界面布局。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值