WebForms में इसे करने के कुछ तरीके हैं, लेकिन पहले आपको DIV . बनाना होगा कोड बिहाइंड से सुलभ ड्रॉपडाउन मेनू का तत्व।
यह स्निपेट देखें?
<ul class="nav nav-tabs">
<li class="nav-item dropdown">
<a class="btn btn-light dropdown-toggle" href="#" id="navbarDropdown1" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Category
</a>
<div id="myDropdownMenu" runat="server" class="dropdown-menu" aria-labelledby="navbarDropdown">
</div>
</li>
</ul>
ध्यान दें कि मैंने 2 विशेषताएं जोड़ी हैं:id="myDropdownMenu" और runat="server" ।
इसके बाद आप कोड बिहाइंड पर जा सकते हैं डेटा स्रोत से मेनू को पॉप्युलेट करना प्रारंभ करने के लिए।
जहाँ तक मुझे पता है, कम से कम ऐसा करने के 2 तरीके हैं।
InnerHtml . में हेर-फेर करके संपत्ति, इस तरह:
private void DisplayMenuByConstructingHtmlTags(List<string> menuList)
{
var menuHtml = "";
foreach (string menuText in menuList)
{
menuHtml += "<a class=\"dropdown-item\" href=\"#\">" + menuText + "</a>\n";
}
myDropdownMenu.InnerHtml = menuHtml;
}
या, मेनू को चाइल्ड कंट्रोल . के रूप में जोड़कर , इस तरह:
private void DisplayMenuByAddingChildControls(List<string> menuList)
{
foreach (string menuText in menuList)
{
var linkMenu = new HyperLink() { CssClass = "dropdown-item", NavigateUrl = "#", Text = menuText };
myDropdownMenu.Controls.Add(linkMenu);
}
}
यह आपकी कॉल है, किसे चुनना है।
बीटीडब्ल्यू, बस इस उदाहरण को पूरा करने के लिए, आप पेज_लोड से इनमें से किसी एक तरीके को कॉल करने का प्रयास कर सकते हैं घटना, इस तरह:
संपादित करें:
आपके अनुरोध से, मैंने डेटाबेस में किसी तालिका से कनेक्शन जोड़कर नमूनों को संशोधित किया है। तो, यह डेटा लोड करने के लिए मॉड्यूल है:
private List<string> LoadMenuFromTable()
{
string connectionString = ConfigurationManager.ConnectionStrings["YourConnectionStringName"].ToString();
var retVal = new List<string>();
using (var connection = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand("SELECT menu_text FROM Table_1", connection))
{
connection.Open();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
retVal.Add((string)reader["menu_text"]);
}
}
}
}
return retVal;
}
और यहां बताया गया है कि आपको मॉड्यूल को कैसे कॉल करना चाहिए:
protected void Page_Load(object sender, EventArgs e)
{
var menu = LoadMenuFromTable();
DisplayMenuByAddingChildControls(menu);
// or DisplayMenuByConstructingHtmlTags(menu);
}
ओह, और इस नमूने को काम करने के लिए इन दो पुस्तकालयों को आयात करना याद रखें:
using System.Configuration;
using System.Data.SqlClient;
आशा है कि यह मदद करता है।