Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 回发时启用不同组中的单选按钮_C#_Asp.net_Sharepoint 2010 - Fatal编程技术网

C# 回发时启用不同组中的单选按钮

C# 回发时启用不同组中的单选按钮,c#,asp.net,sharepoint-2010,C#,Asp.net,Sharepoint 2010,我遇到的问题是我有两组单选按钮。 当我在其中任何一个中单击“全部”时,必须禁用SharePoint DatePicker控件,并显示自定义日期(如图所示)。但正如你所看到的,当我点击第二组单选按钮时,第一组被启用。 如果你能帮我解决这个问题,我将不胜感激 谢谢 以下是两组单选按钮: //第一组 <asp:RadioButton ID="Rd4Month" Text="All" AutoPostBack="True" GroupName="GrpDuration" runat="ser

我遇到的问题是我有两组单选按钮。 当我在其中任何一个中单击“全部”时,必须禁用SharePoint DatePicker控件,并显示自定义日期(如图所示)。但正如你所看到的,当我点击第二组单选按钮时,第一组被启用。 如果你能帮我解决这个问题,我将不胜感激

谢谢


以下是两组单选按钮:

//第一组

 <asp:RadioButton ID="Rd4Month" Text="All" AutoPostBack="True" GroupName="GrpDuration" runat="server" OnCheckedChanged="rdgetDateforMonths" />
  <asp:RadioButton ID="Rd1Month" Text="1 month" AutoPostBack="True" GroupName="GrpDuration" runat="server" OnCheckedChanged="rdgetDateforMonths" />
  <asp:RadioButton ID="Rd2Month" Text="3 month" AutoPostBack="True" GroupName="GrpDuration" runat="server" OnCheckedChanged="rdgetDateforMonths" />
  <asp:RadioButton ID="Rd3Month" Text="6 month" AutoPostBack="True" GroupName="GrpDuration" runat="server" OnCheckedChanged="rdgetDateforMonths" />
  <asp:RadioButton ID="Rd5Month" Text="Other" AutoPostBack="True" GroupName="GrpDuration" runat="server" OnCheckedChanged="rdgetDateforMonths" />
在我将EnableforDateTimeControl修改为False之后

  <SharePoint:DateTimeControl ID="dtcBuildStartDate" runat="server" DateOnly="True" Enabled="False" />


在查看您刚才添加的页面加载方法并阅读我上一篇文章的评论后。看起来问题在于共享点日期时间控件的行为方式。您可以尝试添加EnableViewState=“true”


是否将它们设置为页面加载时的默认值?你的页面负载是什么样子的?只是好奇,为什么不使用?看起来更适合你的需要。另外,能否显示SharePoint datepicker控件的标记?我在上述代码中添加了页面加载和SharePoint DateTimeControl。谢谢。如果(!Page.IsPostBack){试试看{Rd1Month.Checked=true;Rd1BuildMonth.Checked=true;dtcEndDate.SelectedDate=System.DateTime.Today;//将结束日期日历设置为今天的日期dtcBuildEndDate.SelectedDate=System.DateTime.Today;dtcStartDate.SelectedDate=DateTime.Now.AddMonths(-1);dtcBuildStartDate.SelectedDate=DateTime.Now.AddMonths(-1);这似乎是最有可能的罪魁祸首。我想到的另一件事是,OP使用的SharePoint日期选择器可能与ViewState不交互(或者控件上的ViewState被显式禁用),并在标记中声明为
Enabled=“True”
,因此它的状态不会在回发之间保持。当然,这种情况有点复杂=)Occam的Razor等等。@Nick,我尝试添加EnableViewState=true,但似乎没有帮助。出于某种原因,每当单击第一个组的任何rdButton时,另一个DateControl就会被禁用,如第二幅图所示。并且当我单击第二组中的任何rdBtn时,情况正好相反。看起来已启用的rdBtn是由事件处理程序之前的控件设置的。您可以通过每次加载页面时检查复选框的状态来尝试将其设置为每次加载时应为的状态。@Nick,非常感谢您花时间帮助我理解并理解它r解决问题的代码。检查单选按钮状态的部分是每页加载上的键。再次感谢!!!
   <table>
   <tr>
   <td style="vertical-align: middle;">
   <asp:Label ID="Label4" runat="server" Text="Start:"></asp:Label>
    </td>
    <td style="vertical-align: middle;">
    <SharePoint:DateTimeControl ID="dtcStartDate" runat="server" DateOnly="True" />
    </td>
    <td style="vertical-align: middle;">
    <asp:Label ID="Label5" runat="server" Text="End:"></asp:Label>
    </td>
    <td style="vertical-align: middle;">
    <SharePoint:DateTimeControl ID="dtcEndDate" runat="server" DateOnly="True" />
    </td>
    </tr>
    </table>
  protected void rdgetDateforMonths(object sender, EventArgs e)
    {
        //dtcStartDate.Enabled = true;
       // dtcStartDate.ClearSelection();
       // ViewState["rd4Month"] = "false";
        if (Rd1Month.Checked)
        {
            dtcStartDate.ClearSelection();
            dtcStartDate.Enabled = true;
            dtcStartDate.SelectedDate = DateTime.Now.AddMonths(-1);
            //  Label1.Text = DateTime.Now.AddMonths(-1).ToString();
        }

        if (Rd2Month.Checked)
        {
            dtcStartDate.ClearSelection();
            dtcStartDate.Enabled = true;
            dtcStartDate.SelectedDate = DateTime.Now.AddMonths(-3);
        }

        if (Rd3Month.Checked)
        {
            dtcStartDate.ClearSelection();
            dtcStartDate.Enabled = true;
            dtcStartDate.SelectedDate = DateTime.Now.AddMonths(-6);
        }

        if (Rd4Month.Checked)
        {
            dtcStartDate.ClearSelection();
            DateTime value = new DateTime(2012, 04, 01);
            dtcStartDate.SelectedDate = value;
            dtcStartDate.Enabled = false;
         //   ViewState["rd4Month"] = "true";
        }

        if (Rd5Month.Checked)
        {
            dtcStartDate.Enabled = true;
            dtcStartDate.ClearSelection();
        }

    }

 protected void rdgetBuildDateforMonths(object sender, EventArgs e)
    {


       // dtcBuildStartDate.ClearSelection();
      //  dtcBuildStartDate.Enabled = true;
     //   ViewState["rd4BuildMonth"] = "false";
        if (Rd1BuildMonth.Checked)
        {
            dtcBuildStartDate.Enabled = true;
            dtcBuildStartDate.ClearSelection();
            dtcBuildStartDate.SelectedDate = DateTime.Now.AddMonths(-1);

        }

        if (Rd2BuildMonth.Checked)
        {
            dtcBuildStartDate.ClearSelection();
            dtcBuildStartDate.Enabled = true;
            dtcBuildStartDate.SelectedDate = DateTime.Now.AddMonths(-3);

        }

        if (Rd3BuildMonth.Checked)
        {
            dtcBuildStartDate.Enabled = true;
            dtcBuildStartDate.ClearSelection();
            dtcBuildStartDate.SelectedDate = DateTime.Now.AddMonths(-6);

        }

        if (Rd4BuildMonth.Checked)
        {
            dtcBuildStartDate.Enabled = false;
            dtcBuildStartDate.ClearSelection();
            DateTime value = new DateTime(2012, 04, 01);
            dtcBuildStartDate.SelectedDate = value;
            dtcBuildStartDate.Enabled = false;
          //  ViewState["rd4BuildMonth"] = "true";
        }

        if (Rd5BuildMonth.Checked)
        {
            dtcBuildStartDate.Enabled = true;
            dtcBuildStartDate.ClearSelection();

        }
    }

      protected void Page_Load(object sender, EventArgs e)
    {
        //dtcStartDate.MaxDate = System.DateTime.Today;
        dtcBuildStartDate.MaxDate = DateTime.Now.AddMonths(-1);
        dtcStartDate.MaxDate = DateTime.Now.AddMonths(-1);
        dtcEndDate.MaxDate = System.DateTime.Today;
        dtcBuildEndDate.MaxDate = System.DateTime.Today; ;
        lblErrorMsg.Text = "";

        // When the page loads 1st time

        if (!Page.IsPostBack)
        {
            try
            {
                Rd1Month.Checked = true;
                Rd1BuildMonth.Checked = true;
                dtcEndDate.SelectedDate = System.DateTime.Today; // set end date calendar to today's date
                dtcBuildEndDate.SelectedDate = System.DateTime.Today;
                dtcStartDate.SelectedDate = DateTime.Now.AddMonths(-1);
                dtcBuildStartDate.SelectedDate = DateTime.Now.AddMonths(-1);
            }

            catch (Exception ex)
            {
                lblErrorMsg.Text += ex.Message;
            }

        }
    }
  <SharePoint:DateTimeControl ID="dtcBuildStartDate" runat="server" DateOnly="True" Enabled="False" />
<SharePoint:DateTimeControl ID="dtcBuildStartDate" runat="server" DateOnly="True" Enabled="False" EnableViewState="true" />
protected void Page_Load(object sender, EventArgs e)
        {
            //dtcStartDate.MaxDate = System.DateTime.Today;
            dtcBuildStartDate.MaxDate = DateTime.Now.AddMonths(-1);
            dtcStartDate.MaxDate = DateTime.Now.AddMonths(-1);
            dtcEndDate.MaxDate = System.DateTime.Today;
            dtcBuildEndDate.MaxDate = System.DateTime.Today; ;
            lblErrorMsg.Text = "";

            // When the page loads 1st time

            if (!Page.IsPostBack)
            {
                try
                {
                    Rd1Month.Checked = true;
                    Rd1BuildMonth.Checked = true;
                    dtcEndDate.SelectedDate = System.DateTime.Today; // set end date calendar to today's date
                    dtcBuildEndDate.SelectedDate = System.DateTime.Today;
                    dtcStartDate.SelectedDate = DateTime.Now.AddMonths(-1);
                    dtcBuildStartDate.SelectedDate = DateTime.Now.AddMonths(-1);
                }

                catch (Exception ex)
                {
                    lblErrorMsg.Text += ex.Message;
                }

            }

            SetDateBoxEnabled();
        }

        private void SetDateboxEnabled()
        {
            if (Rd4BuildMonth.Checked)
            {
                dtcBuildStartDate.Enabled = false;
            }
            else
            {
                dtcBuildStartDate.Enabled = true;
            }

            if (Rd4Month.Checked)
            {
                dtcStartDate.Enabled = false;
            }
            else
            {
                dtcStartDate.Enabled = true;
            }
        }