【问题标题】:FormView_Load being overwritten C# ASP.NETFormView_Load 被覆盖 C# ASP.NET
【发布时间】:2010-12-07 04:29:54
【问题描述】:

我有一个表单视图,它的加载事件刚刚决定停止工作。我进行了一些调试并注意到它正在到达代码,但无论出于何种原因,我在加载事件中添加的属性不再显示在屏幕上。就好像在没有我的任何额外属性的情况下重新加载表单视图的加载事件之后发生了一些事情。在它停止工作之前我所做的唯一修改是我在它之前的页面中添加了一个会话变量。这不应该引起如此剧烈的变化。

这是我的代码:

    protected void FormView1_Load(object sender, EventArgs e)
{
    RadioButton rbinjury = (RadioButton)FormView1.FindControl("rbinjury");
    RadioButton rbproperty = (RadioButton)FormView1.FindControl("rbproperty");
    RadioButton rbboth = (RadioButton)FormView1.FindControl("rbboth");
    RadioButton rbyes = (RadioButton)FormView1.FindControl("rbyes");
    RadioButton rbno = (RadioButton)FormView1.FindControl("rbno");
    RadioButton rbyes2 = (RadioButton)FormView1.FindControl("rbyes2");
    RadioButton rbno2 = (RadioButton)FormView1.FindControl("rbno2");
    RadioButton rbam = (RadioButton)FormView1.FindControl("rbam");
    RadioButton rbpm = (RadioButton)FormView1.FindControl("rbpm");

    TextBox txtdate = (TextBox)FormView1.FindControl("txtdate");
    DropDownList ddlhour = (DropDownList)FormView1.FindControl("ddlhour");
    DropDownList ddltime = (DropDownList)FormView1.FindControl("ddltime");
    if (FormView1.CurrentMode == FormViewMode.Insert || FormView1.CurrentMode == FormViewMode.Edit)
    {
        txtdate.Attributes.Add("onfocus", "unfocus();");
        locList.Attributes.Add("onChange", "postBack();");
        ddlhour.Items.Insert(0, new ListItem("Hour", "0"));
        ddlhour.Items.Insert(1, new ListItem("12", "12"));
        ddltime.Items.Insert(0, new ListItem("Minute", "0"));
        for (int i = 1; i < 12; i++)
        {
            String hour = Convert.ToString(i);
            ddlhour.Items.Add(new ListItem(hour, hour));
        }

        for (int i = 0; i < 61; i++)
        {
            String time = "";
            if (i < 10)
            {
                time = ":0" + Convert.ToString(i);
            }
            else
            {
                time = ":" + Convert.ToString(i);
            }
            ddltime.Items.Add(new ListItem(time, time));
        }
        //-----------------------------------------handle radio buttons----------------------------------------------------------------
        rbinjury.Attributes.Add("Onclick", "radio('rbinjury','result');");
        rbproperty.Attributes.Add("Onclick", "radio('rbproperty','result');");
        rbboth.Attributes.Add("Onclick", "radio('rbboth','result');");

        rbyes.Attributes.Add("Onclick", "radio('rbyes','inj');");
        rbno.Attributes.Add("Onclick", "radio('rbno','inj');");

        rbyes2.Attributes.Add("Onclick", "radio('rbyes2','dmg');");
        rbno2.Attributes.Add("Onclick", "radio('rbno2','dmg');");

        rbam.Attributes.Add("Onclick", "radio('rbam','time');");
        rbpm.Attributes.Add("Onclick", "radio('rbpm','time');");
    }}

知道什么会导致加载事件停止工作吗?如果我将相同的代码放在页面的保存状态完成事件中,它确实可以工作,但我不应该...

【问题讨论】:

    标签: c# asp.net events formview


    【解决方案1】:

    你需要使用formview数据绑定事件而不是formview加载事件来设置值,试试 使用这个

     protected void frm_DataBound(object sender, EventArgs e) 
    {
        if (frm.CurrentMode == FormViewMode.Edit) 
        {
          TextBox txtdate = (TextBox)frm.FindControl("txtdate");
          txtdate.Attributes.Add("", "");
        } 
    }
    

    同时检查这些线程。 ASP.NET Can not Change Visibility of a Formview control FormView.FindControl(): object reference error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2020-04-16
      • 1970-01-01
      • 2018-05-29
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多