Bu Sayı çözüldü, yazı aşağıda benim yorumu görmekASP.NET DropDownList.SelectedValue i kaybolur nPostBack
beni puzzeling benim koduyla bir sorun var:! I (Bir ASP.NET DropDownList var Basit, bir gridview değil ya da ...) bu statik bir veritabanı sorgusuna bağlı. Ayrıca, ben işaretlemesinde bir liste öğesi eklemek:
<asp:DropDownList ID="ddDeviceSelector" runat="server" DataSourceID="CryringDB_InventoryAssets" DataTextField="Identifier" DataValueField="RowID" AutoPostBack="True" OnTextChanged="ddDeviceSelector_IndexChanged" ToolTip="Select a device by name" AppendDataBoundItems="True" Width="300px">
<asp:ListItem>-- Select Device OR Enter Data of New Device --</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="CryringDB_InventoryAssets" runat="server" connectionString="<%$ ConnectionStrings:CMSValuesExplicitUser %>" SelectCommand="SELECT valueColumn, textColumns FROM myTable"></asp:SqlDataSource>
Ben bir sorgu parametresi ile sayfayı çağırabilir "? Kurtulmak = ..." kurtulmak listesinde belirli bir öğenin değerini içerir nerede. Çözmeyi çözmeye çalıştığımda ve listedeki öğeyi değer olarak seçtiğimde, DropDownList.SelectedValue ayarlanmaz. Page_Load Kodu: E hata ayıklayıcı (çizgi sonra kesme "ddDeviceSelector.SelectedValue = rowID;") bir hata mesajı görüntülenir
protected void Page_Load(object sender, EventArgs e)
{
// Code to interpret the parameter rid (RowID) in the URL
// provides functionality to open formAssetDetails of an individual object.
if (!IsPostBack)
{
ddDeviceSelector.DataBind();
setUiPropertiesByMode(classConstants.displayMode);
String rowID = null;
rowID = Request.QueryString["rid"];
if (rowID != null)
{
setUiPropertiesByMode(classConstants.editMode);
ddDeviceSelector.Enabled = true;
ddDeviceSelector.Enabled = true;
ddDeviceSelector.SelectedValue = rowID;
}
}
kod sorunu olmadan çalışır, ancak
hata CS0103: adı 'SelectedValue' (Bu mesajı Almanca'dan çevrilmiştir ve İngilizce göze hitap eden farklı olabilir) geçerli bağlam
içinde yok
Herhangi bir yardım için teşekkür ederiz.
sorun çözüldü: Yukarıdaki sayfa/kodu çağırmak için kullandığım URL'de, parametre atlaması UPPERCASE dizesi (veritabanı düzeyinde benzersiz bir belirleyici) olarak iletildi. Çalışma zamanında, DropDown öğelerinin öğeleri küçüktü, bu nedenle SelectedValue (büyük/küçük harfe duyarlı) eşleşmedi. Kod değiştirildi: (rowID! = Null) { rowID = rowID.ToLower(); ddDeviceSelector.Enabled = true; ddDeviceSelector.SelectedValue = rowID; setAssetValuesByRowID (rowID); } – WolfiG