Jus*_*ten 57 c# asp.net drop-down-menu
当用户导航到新页面时,此ddl的选定索引由cookie确定,但如果ddl不包含该cookie的值,那么我希望将其设置为0.我将使用哪种方法DDL?循环是最好的方式,还是我可以执行简单的if语句?
这是我尝试过的,但它没有返回bool.
if ( !ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString() ) )
ddlCustomerNumber.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
Sco*_*son 122
有两种方法可以想到:
你可以像这样使用Contains:
if (ddlCustomerNumber.Items.Contains(new
ListItem(GetCustomerNumberCookie().ToString())))
{
// ... code here
}
Run Code Online (Sandbox Code Playgroud)
或修改您当前的策略:
if (ddlCustomerNumber.Items.FindByText(
GetCustomerNumberCookie().ToString()) != null)
{
// ... code here
}
Run Code Online (Sandbox Code Playgroud)
编辑:DropDownList.Items.FindByValue除了基于值的搜索之外,还有一个与FindByText相同的方式.
这将返回一个项目.只需更改为:
if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != null)
ddlCustomerNumber.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
如果0是您的默认值,您只需使用简单的赋值:
ddlCustomerNumber.SelectedValue = GetCustomerNumberCookie().ToString();
Run Code Online (Sandbox Code Playgroud)
如果DDL包含cookie的值,则会自动选择正确的列表项.如果它不包含它,则此调用不会更改选择,因此它将保持默认选择.如果后者与值0相同,那么它就是您的完美解决方案.
我使用这个机制相当多,发现它非常方便.
| 归档时间: |
|
| 查看次数: |
144619 次 |
| 最近记录: |