Как выбрать тот же вариант, который был выбран на другой странице

1

У меня есть несколько DropDownList на моей домашней странице:

<asp:DropDownList style="width: 245px;" class="default" ID="slcLocation" runat="server" ClientIDMode="Static" AppendDataBoundItems="true">
</asp:DropDownList>
<br /><br />
<asp:DropDownList style="width: 245px;" class="default" ID="slcSpecialty" runat="server" ClientIDMode="Static" AppendDataBoundItems="true">
</asp:DropDownList>
<br /><br />
<asp:DropDownList style="width: 245px;" class="default" ID="slcGender" runat="server" ClientIDMode="Static" AppendDataBoundItems="true">
    <asp:ListItem Text="Any Gender" Value="" Selected="True" />
    <asp:ListItem Text="Male" Value="1" />
    <asp:ListItem Text="Female" Value="2" />
</asp:DropDownList>
<asp:Button ID="btnGoAll" class="loginButton" style="padding: 10px; float: right;" Text="Search All" OnClick="btnGoAll_Click" runat="server" ClientIDMode="Static" />

Первые два автоматически заполняются из кода позади, а последний заполняется на моей странице aspx. Когда страница сгенерирована, исходный код выглядит следующим образом:

<select name="ctl00$FeaturedContent$slcLocation" id="slcLocation" class="default" style="width: 245px;">
    <option value="">All Locations</option>
    <option value="89">Theall Road</option>
    <option value="2535">Mamaroneck Avenue</option>
    <option value="1947">Huguenot Street</option>
    <option value="2666">Huguenot Street(1)</option>
    <option value="2435">verhill Road</option>
    <option value="87">estchester Avenue</option>
    <option value="1121">estchester Avenue</option>
    <option value="90">estchester Avenue</option>
    <option value="100">avis Avenue</option>
    <option value="93">te Plains Road Suite 270</option>
    <option value="1532">ic Surgery at WESTMED</option>
    <option value="1606">l, 73 Market Street</option>
    <option value="1241">nter at WESTMED</option>

</select>
<br /><br />
<select name="ctl00$FeaturedContent$slcSpecialty" id="slcSpecialty" class="default" style="width: 245px;">
    <option value="">All Specialties</option>
    <option value="553">Allergy and Immunology</option>
    <option value="315">Anesthesiology</option>
    <option value="140">Breast Surgery</option>
    <option value="141">Cardiology</option>
    <option value="2672">Care Management</option>
    <option value="2509">Chiropractic Medicine</option>
    <option value="688">Clinical Laboratory</option>
    <option value="337">Colon and Rectal Surgery</option>
    <option value="145">Critical Care</option>
    <option value="143">Dermatology / Cosmetic</option>
    <option value="633">Diabetes Education</option>
    <option value="144">Ear, Nose and Throat</option>
    <option value="146">Endocrinology</option>
    <option value="165">Eye Care</option>
    <option value="155">Family Medicine</option>
    <option value="156">Gastroenterology</option>
    <option value="157">General Surgery</option>
    <option value="158">Geriatric Medicine</option>
    <option value="1841">Gynecologic Oncology</option>
    <option value="2345">Hand Surgery</option>
    <option value="159">Hematology and Oncology</option>
    <option value="722">Hospitalist</option>
    <option value="160">Infectious Diseases</option>
    <option value="161">Internal Medicine</option>
    <option value="2069">Interventional Radiology</option>
    <option value="2318">Maternal Fetal Medicine</option>
    <option value="2654">Medical Oncology</option>
    <option value="2309">Mohs Surgery</option>
    <option value="162">Nephrology</option>
    <option value="163">Neurology</option>
    <option value="652">Nutrition</option>
    <option value="164">Obstetrics and Gynecology</option>
    <option value="634">Optical Shop</option>
    <option value="166">Orthopedic Surgery</option>
    <option value="1951">Palliative Medicine</option>
    <option value="1589">Pathology</option>
    <option value="167">Pediatrics and Adolescent Medicine</option>
    <option value="168">Physical Medicine and Rehabilitation</option>
    <option value="169">Plastic Surgery</option>
    <option value="170">Podiatry</option>
    <option value="171">Pulmonology</option>
    <option value="2061">QCOI</option>
    <option value="1460">Radiation Oncology</option>
    <option value="691">Radiology</option>
    <option value="172">Rheumatology</option>
    <option value="2520">Sleep Center</option>
    <option value="2145">Thoracic Surgery</option>
    <option value="951">Urgent Care</option>
    <option value="173">Urology</option>
    <option value="456">Vascular Surgery</option>
    <option value="174">Weight Management</option>

</select>
<br /><br />
<select name="ctl00$FeaturedContent$slcGender" id="slcGender" class="default" style="width: 245px;">
    <option selected="selected" value="">Any Gender</option>
    <option value="1">Male</option>
    <option value="2">Female</option>

</select>
<input type="submit" name="ctl00$FeaturedContent$btnGoAll" value="Search All" id="btnGoAll" class="loginButton" style="padding: 10px; float: right;" />

На моей домашней странице есть кнопка выбора кнопки, которая сохраняет переменную в сеансе:

protected void btnGoAll_Click(object sender, EventArgs e) {
        var locText = slcLocation.SelectedItem.Text;
        var speText = slcLocation.SelectedItem.Text;
        var genText = slcGender.SelectedItem.Text;

        Session["LocationText"] = locText;
        Session["SpecialtyText"] = speText;
        Session["GenderText"] = genText;

        Response.Redirect("~/physicians.aspx", false);
    }

У меня есть тот же код ASPX на другой странице (physician.aspx), который отображает тот же список. То, что я ищу, чтобы, когда пользователь нажимает на кнопку отправки из домашней страницы DropDownList будет автоматически заполнять эти выборы в physician.aspx странице.

У меня есть что - то подобное в physician.asp странице:

public partial class physicians : System.Web.UI.Page {
    string cString = "";
    SqlConnection Conn;
    string strQueryAll = "*";
    string sqlCode = "";
    string theLocation = "", theSpecialty = "", theGender = "";
    string locVal = "", speVal = "", genVal = "";
    string lVal = "", sVal = "", gVal = "";
    int rowCount = 0;
    protected void Page_Load(object sender, EventArgs e) {
        if (!Page.IsPostBack) {
            PopulatePhysician();
            ASPopulateLocation();
            ASPopulateSpecialty();
        }

        if (Session["LocationText"] != null && Session["SpecialtyText"] != null && Session["GenderText"] != null) {
            //dlo.InnerHtml = "Successfully retrieved " + (string)Session["LocationText"];
            //btnGoAll_OnClick(null, null);
        }
    }
}

У меня также есть кнопка на странице physician.aspx которую я бы хотел сделать так, чтобы пользователь щелкнул по странице врача.

Мне просто нужна помощь в том, как добиться передачи сеанса и автоматического заполнения. Должен ли я взять текст или значение в сессии, и как бы я применить его к physician.aspx странице?

Я думаю, мне нужна функция, которая выполняется после загрузки страницы, поскольку элемент управления еще не инициализирован?

Могу ли я использовать Javascript для достижения этой функции? Как я могу заставить его работать с сеансом, который я получаю через С#?

Теги:
session
session-variables

1 ответ

1
Лучший ответ

вы можете иметь общую функцию, например

public void OnBtnClick()
{
 // add the code with the query to database
}

и на загрузке страницы вы можете вызвать функцию, подобную этой

 protected void Page_Load(object sender, EventArgs e) {
        if (!Page.IsPostBack) {
            PopulatePhysician();
            ASPopulateLocation();
            ASPopulateSpecialty();
        }

        if (Session["LocationText"] != null && Session["SpecialtyText"] != null && Session["GenderText"] != null) {

            this.OnBtnClick();
        }
    }

и на обработчике событий нажатия кнопки просто вызовите общую функцию снова

protected void btnGoAll_Click(object sender, EventArgs e) {
this.OnBtnClick();
}
  • 1
    Большое спасибо за Вашу помощь!!! Это спасло мой день. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню