惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - Bireyou

Visual Studio 更改护眼颜色 修复SQL中的孤立账户 在SQL中查看文件组中有哪些表 出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决方法 SQL Server 2005 中重建Master数据库 ASP.NET实现下载的中文文件名乱码处理 - Bireyou - 博客园 NUnit2.0详细使用方法 如何配置和部署安全的.NET三层应用 ASP.NET如何在客户端调用服务端代码 ASP.NET 2.0 绑定高级技巧 - Bireyou 把.NET程序部署到没有安装.NET Framwork的机器上 SourceGrid 2.0 认识ASP.NET配置文件Web.config 加密Web.config中的信息 DataGrid中创建复杂表头方法 showModalDialog()、showModelessDialog()详解 每一项都是js中的小技巧,但十分的实用! 在ASP.NET页面间传递任意数据的方法与实例 javascript函数库
Ext.Net开发过程中问题集锦
Bireyou · 2013-05-05 · via 博客园 - Bireyou

1、动态生成控件,无法取得控件的值:

protected void Page_Init(object sender, EventArgs e)
         {
             ComboBox cmbTest = new ComboBox();
             cmbTest.ID = "cmbTest";
             InitBooleanDrop(cmbTest);
             cmbTest.DirectSelect += new ComponentDirectEvent.DirectEventHandler(cmbTest_DirectSelect);
             this.Page.Controls.Add(cmbTest);
        }

         private void InitBooleanDrop(ComboBox cmb)
         {
             ListItem item = new ListItem();
             item.Text = "---请选择---";
             item.Value = "0";
             cmb.Items.Add(item);
             item = new ListItem();
             item.Text = "Y";
             item.Value = "1";
             cmb.Items.Add(item);
             item = new ListItem();
             item.Text = "N";
             item.Value = "2";
             cmb.Items.Add(item);
             cmb.SelectedItem.Text = cmb.Items[0].Text;
         }

           //不能取得选择的值
        void cmbTest_DirectSelect(object sender, DirectEventArgs e)
         {
             ComboBox cmb = (ComboBox)sender;
             X.Msg.Alert(cmb.SelectedItem.Text, cmb.SelectedItem.Value).Show();
         }

 测试了好久,其实问题就出在这句:

this.Page.Controls.Add(cmbTest);

将其改为以下这句就好了:

this.form1.Controls.Add(cmbTest);

2、在代码中控制显示和隐藏控件:
    不能直接使用Visible属性来控制,应使用Hide()和Show()两个方法来控制,具体可以参考:

http://forums.ext.net/showthread.php?13114&p=54033&viewfull=1#post54033

http://forums.ext.net/showthread.php?13114&p=54033&viewfull=1#post54033

Visible and Hidden are not the same.
 If Visible=false then a widget is not rendered at all (it is absent on client side) therefore we cannot change visibility on client side. 
You have to rerender the widget after set Visible=true during DirectEvent Widget1.Render(); If Hidden=true then the widget is rendered but hidden in the browser, you can easly to control visiblilty in the client side by Hidden
property during DirectEvent

 3、在创建复合控件时,出现“The control with ID '控件ID' not found”:

 原因是由于控件没有在“CreateChildControls”方法中创建;

 4、GridPanel无法获得选择的行:

原因:设置Store中Model对象的IDProperty属性为字段名即可。

5、用Ext.Net在创建自定义控件时,出现“Token is not unique”的问题:

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------


Token is not unique
-------------------
ID = _ClientInit
TagName = anchor
Match = <#:anchor id="_ClientInit" />
 
 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: Transformer.NET.TokenNotUniqueException: Token is not unique
-------------------
ID = _ClientInit
TagName = anchor
Match = <#:anchor id="_ClientInit" />


源错误: 


执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 



[TokenNotUniqueException: Token is not unique
-------------------
ID = _ClientInit
TagName = anchor
Match = <#:anchor id="_ClientInit" />
]
   Transformer.NET.Token.ParseAnchors() +508
   Transformer.NET.TextTransformer.Parse(List`1 tokensType, Dictionary`2 variables) +1063
   Transformer.NET.TextTransformer.Transform(List`1 tokensType, Dictionary`2 variables) +42
   Transformer.NET.TextTransformer.Transform(List`1 tokensType) +41
   Transformer.NET.TextTransformer.Transform() +53
   Ext.Net.ExtNetTransformer.Transform(String text) +210
   Ext.Net.InitScriptFilter.Transform() +50
   Ext.Net.InitScriptFilter.Flush() +74
   System.Web.HttpWriter.Filter(Boolean finalFiltering) +8782518
   System.Web.HttpResponse.FilterOutput() +82
   System.Web.CallFilterExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +47
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

View Code

出现这个问题可能是由于创建控件没有添加到控件库中,如下:

protected override void CreateChildControls()
{

  Viewport viewMain = new Viewport();   viewMain.ID = this.ID + "_viewMain";   viewMain.Layout = "AnchorLayout";   viewMain.AutoScroll = true;   viewMain.Border = false;   viewMain.BorderSpec = "0 0 0 0";   this.Controls.Add(viewMain); //少了这条语句就会出现上述错误提示
}

主要原因是控件ID重复。 

6、Ext.Net扩展自定义控件,保存自定义属性状态:

public class TextFieldState : Ext.Net.Panel
    {
        private TextField referText;
        private Ext.Net.Panel referPanel;

        private string _text;
        private string _selectText;

        public virtual string Text
        {
            get
            {
                _text = ViewState["Text"].ToString();
                return _text;
            }
            set
            {
                _text = value;
                ViewState["Text"] = _text;
                if (referText != null)
                    referText.Text = _text;
            }
        }
        [Bindable(true)]
        [Localizable(true)]
        public string SelectText
        {
            get
            {
                _selectText = ViewState["SelectText"].ToString();
                return _selectText;
            }
            set
            {
                _selectText = value;
                ViewState["SelectText"] = _selectText;
            }
}
<ext:ResourceManager ID="ResourceManager1" runat="server" DisableViewState="false" />  //页面中需要更新属性DisableViewState="false"

在使用控件时,操作如下:

public partial class WebForm4 : System.Web.UI.Page
    {
        protected TextFieldState txtFState;

        protected void Page_Init(object sender, EventArgs e)
        {
            txtFState = new TextFieldState();
            txtFState.ID = "txtFState";
            
            this.form1.Controls.Add(txtFState);
            
            Ext.Net.Button btn = new Ext.Net.Button();
            btn.Text = "Set";
            btn.DirectEvents.Click.ViewStateMode = ViewStateMode.Enabled; //必须启用ViewState
            btn.DirectClick += new Ext.Net.ComponentDirectEvent.DirectEventHandler(btnSet_DirectClick);
            this.form1.Controls.Add(btn);

            btn = new Ext.Net.Button();
            btn.Text = "Show";
        //必须启用ViewState
btn.DirectEvents.Click.ViewStateMode
= ViewStateMode.Enabled; btn.DirectClick += new Ext.Net.ComponentDirectEvent.DirectEventHandler(btn_DirectClick); btn.EnableViewState = true; this.form1.Controls.Add(btn); } void btnSet_DirectClick(object sender, Ext.Net.DirectEventArgs e) { txtFState.Text = "ddddfdfd"; txtFState.SelectText = "aaaaaa"; } void btn_DirectClick(object sender, Ext.Net.DirectEventArgs e) { X.Msg.Alert("提示", txtFState.Text + "|" + txtFState.SelectText).Show(); } }

执行的效果图如下:

7、在导出Excel时出现“由于出现错误 c00ce514 而导致此项操作无法完成”的解决方法:

如果是通过点击Ext.net按钮导出,则需要设置如下属性:

ButtonID.DirectEvents.Click.IsUpload = true;

如果是通过JavaScript方式通过调用DirectMethod来导出,则在调用方法时加入:“{ isUpload: true }”,如下:

App.direct.ExportData({ isUpload: true });