小编Maz*_*eri的帖子

调用多态字段事件

考虑以下代码:

public class TableMain {
    public virtual event Action UpdateFilter;
    ....
}

public class TableSub : TableMain {
    public override event Action UpdateFilter;

    public void UpdateQuery() {
        .....
        if (UpdateFilter!=null) {
              UpdateFilter(); // Invocation of polymorphic field-like event???
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,ReSharper显示警报"调用多态字段事件".

我的问题是:它究竟意味着什么?这是一个糟糕的编程习惯的警报吗?此外,以多态方式调用事件是不好的做法吗?(知道事件只能从声明它的类中提出.)

c# polymorphism events overriding

25
推荐指数
1
解决办法
3549
查看次数

在html5中输入类型不是文本的UpdatePanel

我正在开发一个使用ASP.NET渲染HTML5的开源项目.在这里你可以看看:http: //asphtml5.codeplex.com/

现在我在更新面板时遇到问题,回复了"text"以外的类型的输入值.你可能知道,html 5引入了几种输入类型,例如'number','tel','search'等.现在,如果我渲染这样的控件,一切正常情况下工作正常,但如果我把它们放入UpdatePanel,没有值将被回发,值将被重置.

这是一小段产生相同错误的代码:

    <asp:UpdatePanel runat="server" ID="UP">
        <ContentTemplate>
            <p>
                Enter A Number:
                <asp:TextBox runat="server" ID="Number2" type="number" />
            </p>
            <asp:Button Text="Submit" runat="server" ID="BtnSubmit" OnClick="BtnSubmit_Click" />
            <p>
                You entered :
                <asp:Label Text="" ID="LblValue" runat="server" />
            </p>
        </ContentTemplate>
    </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

如果您在支持html 5的浏览器上测试此代码,请以Chrome为例,将显示Numeric Up-Down字段.但是如果单击提交按钮,它将丢失您输入的值.

这是事件处理程序的代码:

        protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            LblValue.Text = Number2.Text;
        }
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的是读取UpdatePanel,ScriptManager和ScriptManagerProxy类代码,没有找到.

我想我可能需要创建自己的UpdatePanel和/或ScriptManager类来使用.

任何人都可以帮助我,并告诉我在哪里检查.

asp.net html5 updatepanel scriptmanager

10
推荐指数
1
解决办法
4293
查看次数