Как сохранить ActiveTabIndex после перезагрузки страницы / выполнения обратной передачи? - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь создать пользовательский интерфейс, в котором после загрузки изображения страница должна выполнить перезагрузку / обратную передачу без TabContainer (ajaxcontroltoolkit), изменяющего свой ActiveTabIndex, но обратная передача по умолчанию кнопки (asp: button) заставляет меняПроблемы, когда я пытаюсь перераспределить страницу через браузер вручную, он пытается повторно выполнить последний метод, использованный кнопкой, если я не использую следующий код (для перезагрузки страницы):

Administrar.aspx.cs:

ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "ShowMessage()", true);

Функция, связанная с JavaScript:

function ShowMessage()
{
    alert('Exito al cargar imagen.');
    window.location.href = 'Administrar.aspx';
}

НО !, если я использую этот код при перезагрузке страницыя теряю ActiveTabIndex.Все, что я хочу сделать, это сохранить ActiveTabIndex при загрузке изображения в базу данных без проблем с ручной перезагрузкой браузера. Скажите, пожалуйста, что я делаю неправильно или что я могу сделать?я застрял на этом в течение нескольких дней.

вот код для лучшего понимания:

FrontEnd:

<asp:TabContainer ID="TabContainer1" CssClass="cssTab" runat="server">

            <asp:TabPanel runat="server" ID="TabPanel1" HeaderText="INFORMACIÓN">
                        <ContentTemplate>
                            <div class="divCNTRL1">...</div>
                            <div class="divDSPLY1">...</div>
                        </ContentTemplate>
                    </asp:TabPanel>

            <asp:TabPanel runat="server" ID="TabPanel2" HeaderText="IMÁGENES">
                        <ContentTemplate>
                            <div class="divCNTRL2">
                                <h3>Agregar Imagenes</h3>
                                <label class="lbl">Relación:</label>
                                <asp:DropDownList CssClass="elementControl2" DataValueField="idInformacion" DataTextField="RelGal" ID="ddlRelacionGaleria" runat="server"></asp:DropDownList>

                                <label class="lbl">Imagen:
                                    <asp:RequiredFieldValidator ValidationGroup="grpImg" ID="RequiredFieldValidator12" runat="server" ErrorMessage="*Imagen Invalida." ControlToValidate="FilUplIMG" ForeColor="#CC3300"></asp:RequiredFieldValidator>
                                </label>
                                <asp:FileUpload ID="FilUplIMG" runat="server" CssClass="elementControl2" />
                                <br />
                                <asp:Button runat="server" ID="btnAgrImg" OnClick="btnAgrImg_Click" CssClass="btnAgregarPropiedad" Text="AGREGAR" />
                            </div>
                            <div class="divDSPLY2">
                                <asp:UpdatePanel runat="server" UpdateMode="Conditional">
                                    <ContentTemplate>
                                       <asp:GridView runat="server" ID="gvImg" CssClass="gvImg2">...</asp:GridView>
                                       <asp:Label ID="lblPage2" CssClass="lblPage" runat="server" ForeColor="Blue"></asp:Label>
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                            </div>
                        </ContentTemplate>
                    </asp:TabPanel>
 </asp:TabContainer>

BackEnd(Просто кнопка для добавления):

public void btnAgrImg_Click(object sender, EventArgs e)
{
    if (FilUplIMG.PostedFile != null)
    {
        string FileName = Path.GetFileName(FilUplIMG.PostedFile.FileName);

        MySqlConnection con = new MySqlConnection(strConnString);

        string strQuery = "insert into inmobiliarialrz.galeria (fkrelation, Relation, FileName, FilePath) values (@fkrelation, @Relation, @FileName, @FilePath)";

        MySqlCommand cmd = new MySqlCommand(strQuery);
        if (File.Exists(Server.MapPath("~/ImagenesPROP/") + FileName))
        {
            string script = "alert(\"Ya existe esta imagen.\");";
            ScriptManager.RegisterStartupScript(this, GetType(), "ServerControlScript", script, true);
        }
        else
        {
            //save files in the disk
            FilUplIMG.SaveAs(Server.MapPath("~/ImagenesPROP/" + FileName));

            cmd.Connection = con;
            cmd.Parameters.AddWithValue("@fkrelation", ddlRelacionGaleria.SelectedValue);
            cmd.Parameters.AddWithValue("@Relation", ddlRelacionGaleria.SelectedItem.Text);
            cmd.Parameters.AddWithValue("@FileName", FileName);
            cmd.Parameters.AddWithValue("@FilePath", "~/ImagenesPROP/" + FileName);
            cmd.CommandType = CommandType.Text;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                lblFail.Visible = true;
                lblFail.Text = ex.Message;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }
            this.MostrarImagen2();//this is a method to show data in a gridview.
            lblFail.Text = "";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "key", "ShowMessage()", true);
            TabContainer1.ActiveTabIndex = 1;//here i'm trying a desperate move.
        }
    }
}
...