У меня есть несколько 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 для достижения этой функции? Как я могу заставить его работать с сеансом, который я получаю через С#?
вы можете иметь общую функцию, например
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();
}