SelectedValue
SelectedItem.Value
रूप में एक ही मान देता है।
SelectedItem.Value
और SelectedItem.Text
में अलग-अलग मूल्य हो सकते हैं और प्रदर्शन यहां कोई कारक नहीं है, केवल इन गुणों के अर्थ हैं।
<asp:DropDownList runat="server" ID="ddlUserTypes">
<asp:ListItem Text="Admins" Value="1" Selected="true" />
<asp:ListItem Text="Users" Value="2"/>
</asp:DropDownList>
यहाँ
, ddlUserTypes.SelectedItem.Value == ddlUserTypes.SelectedValue
और दोनों मूल्य "1" लौट आते हैं।
ddlUserTypes.SelectedItem.Text
"व्यवस्थापक" वापसी होगी, जिसमें से ddlUserTypes.SelectedValue
संपादित
हुड के नीचे अलग है, SelectedValue इस
public virtual string SelectedValue
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
{
return this.Items[selectedIndex].Value;
}
return string.Empty;
}
}
तरह लग रहा है और SelectedItem इस तरह दिखता है:
public virtual ListItem SelectedItem
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
{
return this.Items[selectedIndex];
}
return null;
}
}
इन दो गुणों के बीच एक बड़ा अंतर यह है कि SelectedValue
में सेटर भी है, क्योंकि SelectedItem
नहीं है। SelectedValue
कोड लिखते समय तेज़ है, और निष्पादन प्रदर्शन की समस्या पर चर्चा करने का कोई वास्तविक कारण नहीं है। बाध्यकारी अभिव्यक्तियों का उपयोग करते समय चयनित वैल्यू का भी एक बड़ा फायदा है।
संपादित डेटा बाइंडिंग परिदृश्य (आप SelectedItem.Value उपयोग नहीं कर सकते)
<asp:Repeater runat="server">
<ItemTemplate>
<asp:DropDownList ID="ddlCategories" runat="server"
SelectedValue='<%# Eval("CategoryId")'>
</asp:DropDownList>
</ItemTemplate>
</asp:Repeater>
स्रोत
2012-03-05 09:25:27
मुझे इंगित करने के लिए धन्यवाद .. मैंने गलती से टाइप किया। आगे .. वास्तव में। हर जगह इस्तेमाल किया जा रहा है। तो, दोनों गुणों के आंतरिक कार्यान्वयन (SelectedItem.Value और SelectedValue) समान हैं? चयनित Item (दो बिंदुओं) वाक्यविन्यास एक-हॉप-दूर चयनित वैल्यू की तुलना में अधिक जटिल नहीं है? –
धन्यवाद एड्रियन। क्या आप बाध्यकारी अभिव्यक्ति लाभ के बारे में विस्तार कर सकते हैं? बहुत बाध्य होगा! –
@ vulcanraven, आपका स्वागत है, मैंने डेटाबेस डेटाबेस –