C# 如何响应重定向到选项卡容器中的面板或控件

C# 如何响应重定向到选项卡容器中的面板或控件,c#,asp.net,tabs,panel,response.redirect,C#,Asp.net,Tabs,Panel,Response.redirect,我正在一个选项卡式页面(4个选项卡-选项卡容器)上工作,其中2个使用相同的控件,并且具有不同的gridview,具有不同的dats源,可以编辑和添加项目 编辑和添加项目工作正常,但是当我添加项目时,gridview或页面需要刷新以显示新项目。使用Response.Redirect仅刷新页面并重定向到第一个选项卡。我正在处理选项卡2和3,重定向需要指向相关选项卡,而不总是第一个选项卡 有什么建议吗 我正在使用VisualStudio2010,C#ASP.Net 代码: 第页: <asp:Co

我正在一个选项卡式页面(4个选项卡-选项卡容器)上工作,其中2个使用相同的控件,并且具有不同的gridview,具有不同的dats源,可以编辑和添加项目

编辑和添加项目工作正常,但是当我添加项目时,gridview或页面需要刷新以显示新项目。使用Response.Redirect仅刷新页面并重定向到第一个选项卡。我正在处理选项卡2和3,重定向需要指向相关选项卡,而不总是第一个选项卡

有什么建议吗

我正在使用VisualStudio2010,C#ASP.Net

代码:

第页:

<asp:Content ID="Content2" ContentPlaceHolderID="pnlMainContent" runat="server">
<div style="padding: 10px">
    <cc1:TabContainer ID="tbMain" runat="server" ActiveTabIndex="0" Width="100%" AutoPostBack="true"
        OnActiveTabChanged="tbMain_ActiveTabChanged">
        <cc1:TabPanel runat="server" ID="tbpgWFTypes" HeaderText="Work Flow Types">
            <ContentTemplate>
                <table style="width: 100%">
                    <tr>
                        <td align="center">
                             <uc1:ctrlWorkflowTypeControl ID="ctrlWorkflowTypeControl" runat="server" />
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </cc1:TabPanel>
        <cc1:TabPanel runat="server" ID="tbpgWFStatus" HeaderText="Work Flow Status">
            <ContentTemplate>
                <table style="width: 100%">
                    <tr>
                        <td align="center">
                            <uc2:ctrlStatusControl ID="ctrlStatusControl" runat="server" />
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </cc1:TabPanel>
        <cc1:TabPanel runat="server" ID="tbpgWFActions" HeaderText="Work Flow Actions">
            <ContentTemplate>
                <table style="width: 100%">
                    <tr>
                        <td align="center">
                            <uc3:ctrlActionControl ID="ctrlActionControl" runat="server" />                                
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </cc1:TabPanel>
        <cc1:TabPanel runat="server" ID="tbpgWFRouting" HeaderText="Work Flow Routing">
            <ContentTemplate>
                <table style="width: 100%">
                    <tr>
                        <td align="center">
                           <uc4:ctrlWorkflowRoutingControl ID="ctrlWorkflowRoutingControl" runat="server" />
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </cc1:TabPanel>
    </cc1:TabContainer>
</div>
控制:

    <table>
    <tr>
        <td align="left" colspan="2">
            <asp:DropDownList ID="ddlWFStatus" runat="server" Width="400px" DataSourceID="dsStatus" DataTextField="Description" Visible="false"></asp:DropDownList>
            <asp:DropDownList ID="ddlWFAction" runat="server" Width="400px" DataSourceID="dsAction" DataTextField="Description" Visible="false"></asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td  colspan="2"></td>
    </tr>
    <tr>
        <td align="left"  colspan="2">
        <asp:Panel ID="pnlStatus" runat="server" Visible="false">
            <asp:GridView ID="gvStatus" runat="server" DataSourceID="dsStatus"
                AutoGenerateColumns="False" CellPadding="4" DataKeyNames="WFStatusID"
             ForeColor="#333333" EnableSortingAndPagingCallbacks="True" AllowPaging="True" 
                AllowSorting="True" onselectedindexchanged="gvStatus_SelectedIndexChanged">
               <Columns>
                <asp:BoundField DataField="WFStatusID" HeaderText="WFStatusID" SortExpression="WFStatusID" Visible="false">
                    <ItemStyle HorizontalAlign="Left" Width="400px" /> 
                </asp:BoundField>
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description">
                    <ItemStyle HorizontalAlign="Left" Width="400px" /> 
                </asp:BoundField>
               <asp:CommandField  ButtonType="Button" EditText="Edit" ShowEditButton="true" />
               </Columns>
              <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#999999" />
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            </asp:GridView>
            </asp:Panel>
             <asp:Panel ID="pnlAction" runat="server" Visible="false">
            <asp:GridView ID="gvAction" runat="server" DataSourceID="dsAction"
                AutoGenerateColumns="False" CellPadding="4" DataKeyNames="WFActionID"
             ForeColor="#333333" EnableSortingAndPagingCallbacks="True" AllowPaging="True" 
                AllowSorting="True" onselectedindexchanged="gvAction_SelectedIndexChanged">
               <Columns>
                <asp:BoundField DataField="WFActionID" HeaderText="WFActionID" SortExpression="WFActionID" Visible="false">
                    <ItemStyle HorizontalAlign="Left" Width="400px" /> 
                </asp:BoundField>
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description">
                    <ItemStyle HorizontalAlign="Left" Width="400px" /> 
                </asp:BoundField>
               <asp:CommandField  ButtonType="Button" EditText="Edit" ShowEditButton="true" />
               </Columns>
              <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#999999" />
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            </asp:GridView>
            </asp:Panel>
        </td>
    </tr>
    <tr>
        <td align="left"  colspan="2">
            <asp:Button ID="btnShowAddSection" runat="server" Text="" onclick="btnShowAddSection_Click"/>
        </td>
    </tr>
    <tr id="divAddEditRow" runat="server" visible="false">       
        <td><asp:Label ID="lblAdd" runat="server" Text="New Item: " />  
            <asp:TextBox ID="txtEdit" runat="server" ></asp:TextBox>
        </td>
        <td>
            <asp:Button ID="btnAdd" runat="server" Text="Add" onclick="btnAdd_Click" style="float: right; padding-right:5px; margin-right:8px"/>
        </td>
    </tr>    
</table>

<asp:ObjectDataSource ID="dsStatus" runat="server" SelectMethod="FillWFStatus" UpdateMethod="UpdateWFStatus"
 TypeName="***.**.Services.WorkflowDataService" onupdating="dsStatus_Updating">
 <UpdateParameters>
    <asp:Parameter Type="Int32" Name="WFStatusID" />
    <asp:Parameter Type="String" Name="Description" />
 </UpdateParameters>
</asp:ObjectDataSource>

 <asp:ObjectDataSource ID="dsAction" runat="server" SelectMethod="FillWFAction" UpdateMethod="UpdateWFAction"
 TypeName="***.**.Services.WorkflowDataService" onupdating="dsAction_Updating">
 <UpdateParameters>
    <asp:Parameter Type="Int32" Name="WFActionID" />
    <asp:Parameter Type="String" Name="Description" />
 </UpdateParameters>
</asp:ObjectDataSource>

控制代码隐藏:

 protected void Page_Load(object sender, EventArgs e)
    {
        tbpgWFTypes.Focus();
        if (!IsPostBack)
        {
            tbMain_ActiveTabChanged(tbMain, null);                                       
        }           
}

protected void tbMain_ActiveTabChanged(object sender, EventArgs e)
{
    try
    {
        if (tbMain.ActiveTabIndex == 1)
        {
            ctrlActionControl.ActionPanelMode = true;
            ctrlStatusControl.StatusPanelMode = false;
        }

        if (tbMain.ActiveTabIndex == 2)
        {
            ctrlStatusControl.StatusPanelMode = true;
            ctrlActionControl.ActionPanelMode = false;
        }                
    }
    catch (Exception ex)
    {
        Support.ExceptionHandler.HandleException(ex);
    }
  }
}
protected void Page_Load(object sender, EventArgs e)
    {  
    }

protected void gvStatus_SelectedIndexChanged(object sender, EventArgs e)
{
    WorkflowDataService.InsertWFStatus(0, txtEdit.Text);
}

protected void gvAction_SelectedIndexChanged(object sender, EventArgs e)
{
    WorkflowDataService.InsertWFAction(0, txtEdit.Text);
}

public bool StatusPanelMode
{
    set { pnlStatus.Visible = !value;
    btnShowAddSection.Text = "Add New Status";
    ddlWFStatus.Visible = !value;
    }           
}

public bool ActionPanelMode
{
    set
    {
        pnlAction.Visible = !value;
        btnShowAddSection.Text = "Add New Action";
        ddlWFAction.Visible = !value;
    }
}

protected void btnShowAddSection_Click(object sender, EventArgs e)
{
    this.divAddEditRow.Visible = true;
    btnShowAddSection.Visible = false;
}

protected void dsStatus_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
    var test = gvStatus.SelectedIndex;
    var test2 = dsStatus.UpdateParameters[0];
}

protected void dsAction_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
    var test = gvStatus.SelectedIndex;
    var test2 = dsAction.UpdateParameters[0];
}

protected void btnAdd_Click(object sender, EventArgs e)
{
    this.divAddEditRow.Visible = false;
    btnShowAddSection.Visible = true;

    if (pnlStatus.Visible == true)
    {
        WorkflowDataService.InsertWFStatus(0, txtEdit.Text);
        //Response.Redirect("ManageRoutingPage.aspx?tab=2");   <--- This Doesnt Work                
    }
    if (pnlAction.Visible == true)
    {
        WorkflowDataService.InsertWFAction( 0, txtEdit.Text);
        Response.Redirect("ManageRoutingPage.aspx");  // <-- This goes back to tab 1 instead of 3
    }
  }            
}    
受保护的无效页面加载(对象发送方,事件参数e)
{  
}
受保护的无效gvStatus\u SelectedIndexChanged(对象发送方,事件参数e)
{
WorkflowDataService.InsertWFStatus(0,txtEdit.Text);
}
受保护的无效gvAction\u SelectedIndexChanged(对象发送方,事件参数e)
{
WorkflowDataService.InsertWFAction(0,txtEdit.Text);
}
公共布尔状态面板模式
{
设置{pnlStatus.Visible=!value;
btnShowAddSection.Text=“添加新状态”;
ddlWFStatus.Visible=!value;
}           
}
公共布尔操作面板模式
{
设置
{
pnlAction.Visible=!value;
btnShowAddSection.Text=“添加新操作”;
ddlWFAction.Visible=!value;
}
}
受保护的无效btnShowAddSection_单击(对象发送者,事件参数e)
{
this.divAddEditRow.Visible=true;
btnShowAddSection.Visible=false;
}
受保护的无效dsStatus_更新(对象发送方,ObjectDataSourceMethodEventArgs e)
{
var测试=gvStatus.SelectedIndex;
var test2=dsStatus.UpdateParameters[0];
}
受保护的无效dsAction_更新(对象发送方,ObjectDataSourceMethodEventArgs e)
{
var测试=gvStatus.SelectedIndex;
var test2=dsAction.UpdateParameters[0];
}
受保护的无效btnAdd_单击(对象发送者,事件参数e)
{
this.divAddEditRow.Visible=false;
btnShowAddSection.Visible=true;
如果(pnlStatus.Visible==true)
{
WorkflowDataService.InsertWFStatus(0,txtEdit.Text);

//Response.Redirect(“ManageRoutingPage.aspx?tab=2”);您可以使用查询字符串,如下所示

Response.Redirect("default.aspx?tab=1");
Response.Redirect("default.aspx?tab=2");
Response.Redirect("default.aspx?tab=3");
在default.aspx页面中,您可以执行以下操作

var tab = Request.QueryString["tab"];
switch(tab)
{
case "1":
//Bind data for first tab
break;
case "2":
//Bind data for second tab
break;
}

希望对您有所帮助:)

您可以使用查询字符串,如下所示

Response.Redirect("default.aspx?tab=1");
Response.Redirect("default.aspx?tab=2");
Response.Redirect("default.aspx?tab=3");
在default.aspx页面中,您可以执行以下操作

var tab = Request.QueryString["tab"];
switch(tab)
{
case "1":
//Bind data for first tab
break;
case "2":
//Bind data for second tab
break;
}

希望有帮助:)

请显示您的代码。到目前为止您尝试了什么?为什么您需要
响应。重定向
?您不能只加载所需的选项卡吗?如果您确实需要重定向,您应该使用URL参数指定要加载的选项卡。我已经添加了代码,请提供建议。请显示您的代码。到目前为止您尝试了什么?你为什么需要
响应。重定向
?你不能加载你想要的选项卡吗?如果你真的需要重定向,你应该使用URL参数指定要加载的选项卡。我已经添加了我的代码,请告知。