dropdownlist ausgewählt Wert
Dies mag sehr trivial, ich verwendet, um zu wissen, wie Sie dies tun, gleichzeitig aber für einige Grund, warum ich kann nicht scheinen, um meinen Kopf um es dieses mal:
Ich habe zwei Tabellen: Hotel
und HotelRooms
Die Hotel
Tisch hat HotelID
und andere hotel details und die HotelID
ist in HotelRooms
mit verschiedenen Zimmerarten, jede Einheit hat eine Beschreibung.
Ein Hotel kann verschiedene Zimmer-Typen.
Ich habe eine DropDownList
enthält HotelID
und RoomIDs
. HotelID
stammt aus einer session-variable. HotelID
ist der Wert für die DropDownList; but the list displays
Einheit.
Zimmerarten
Whenare selected I want to display a
GridView " mit dem hotel Zimmer details, wie Beschreibung, Preis, usw....
Kann ich das nicht, da der Wert für meine DropDownList ist HotelID
welcher zugeordnet ist zu der Session ID
. Wie bekomme ich das Hotelzimmer details von dem ausgewählten Wert des DropDownList, bitte?
Update:
Code für Gridview:
string intResortID = Request.QueryString("intResortID ")
string strRoomType = DropDownList2.SelectedValue;
string connStr = ConfigurationManager.ConnectionStrings["bdsConnectionString"].ConnectionString;
SqlConnection Con = new SqlConnection(connStr);
SqlDataAdapter sdr = new SqlDataAdapter("SELECT TOP (100) PERCENT tblAvail.dtm, tblResortsRooms.strRoomType, tblResortsRooms.strDescription, tblAvail.intQty, tblAvail.curPrice, tblAvail.intResortID, tblResortsRooms.intWSCode FROM tblAvailable INNER JOIN tblResortsRooms ON tblAvail.intResortID = tblResortsRooms.intResortID AND tblAvail.strRoomType = tblResortsRooms.strRoomType WHERE (tblResortsRooms.curRecRate > 0) AND (tblAvail.intResortID = @intResortID) AND (tblAvail.strRoomType = @strRoomType) AND (tblAvailable.dtm >= { fn CURDATE() }) ORDER BY tblResortsRooms.strRoomType",Con);
SqlParameter ResID = new SqlParameter("@intResortID", intResortID);
SqlParameter RoomType = new SqlParameter("@strRoomType", strRoomType);
sdr.SelectCommand.Parameters.Add(ResID);
sdr.SelectCommand.Parameters.Add(RoomType);
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="SqlDataSource2" DataTextField="strRoomType"
DataValueField="intResortID"
onselectedindexchanged="DropDownList2_SelectedIndexChanged"
AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
SelectCommand="SELECT [intResortID], [strRoomType] FROM [tblResortsRooms] WHERE ([intResortID] = @intResortID)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="intResortID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
- können Sie uns zeigen, einige code wenigstens? ^^
- Aktualisiert die oben genannte Frage
- wo und wie füllen Sie Ihre dropdownlist? können Sie zeigen, dass?
- Wieder aktualisiert, siehe bitte oben
- Ich denke, du hast etwas falsch ist. was ist der Punkt, der mit einem DataValueField mit den gleichen Werten? und wenn Ihr DataTextField ist RoomID sind Sie mit einer Liste der Zimmer-Id für den Benutzer? das ist nicht gut. Kannst du die Tabellen, die Sie verwenden, zusammen mit den Namen der Spalten?
- Nicht sicher, was Sie bedeuten, durch gleiche Werte, aber aktualisiert haben, meine Frage oben mit dem code für die dropdownlist
- OK, sehen Sie Ihre Abfrage -
SELECT [intResortID], [strRoomType] FROM [tblResortsRooms] WHERE ([intResortID] = @intResortID)
die Sie verwenden, um zu füllen DropDownList2. also im Grunde in dieser Abfrage zurückgegebenen Liste haben das gleiche ResortIDs zurückgegeben. Also im Grunde Ihre DataValueField immer die gleichen IDs. Ihre Tabellen scheint nicht richtig normalisiert. Es sei denn, Ihr gebt die beteiligten Tabellen zusammen mit den Namen der Spalten, ist es schwierig zu helfen, mit einer Lösung. - Das ist die Tabelle einbezogen. Ich verstehe nicht, was du damit meinst " es sei denn, Ihr gebt die beteiligten Tabellen zusammen mit den Namen der Spalten, ist es schwierig zu helfen, mit einer Lösung."
- Lassen Sie mich wissen, die Tabellen-und Spaltennamen (ResortTable - ID, Name, andere Spalten..... & ResortRooms - ID, Name, othercolumns....... & Einheit - ID, der Name, die anderen Spalten......) und die Beziehungen zwischen Ihnen. so einfach ist das. Fügen Sie nicht als Kommentar. Bearbeiten Sie die Frage und postet dort
- t Er schon die Abfrage, das sollte gut genug sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
'DropDownList1.SelectedValue' soll geben Sie den Wert für
@intResortID
.'DropDownList2.SelectedValue' soll geben Sie den Wert für
@strRoomType
.DropDownList2_SelectedIndexChanged
sollte die Abfrage ausführen, indem Füllung etwas (wie ein DataTable).Das gefüllte DataTable gebunden werden soll Sie Ihre GridView.
Versuchen Sie etwas wie das folgende in deiner
DropDownList2_SelectedIndexChanged
Methode:DropDownList2_SelectedIndexChanged
um sicherzustellen, dass die Methode aufgerufen wird? Außerdem haben Sie überprüft, dassintResortID
undstrRoomType
kehren die richtigen Werte?strRoomType
angenommen werden, die Inhalte der Nutzer zu sehen ist? Wenn ja, dann die ersten zwei Zeilen solltenstring intResortID = DropDownList2.SelectedValue;string strRoomType = DropDownList2.SelectedText;
Versuchen
SelectedItem.Text
von der dropdownlist.Klingt wie Sie brauchen eine neue ID (Primary Key) in Ihrem Hotelzimmer-Tabelle, die eindeutig identifiziert jeden Raum. Wenn Sie hatte, Sie könnte verwenden Sie, dass als Wert für die dropdown-und das problem geht Weg.