[Asp.net]DropDownList改变默认选中项的两种方式
引言
其实是不想总结这方面的内容,发现太简单了,可是在这上面也栽了跟头。所以还是记录一下吧,算是提醒自己,不要太看不起太基础的东西,有这种心理,是会载大跟头的。
一个例子
这里模拟一下最常用的一个例子,在列表中,选择修改,将选中的记录,在上面显示,并改变DropDownList中的默认选中项。
方式一
代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Wolfy.DropDownListDemo.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
编号:<asp:Literal Text="" runat="server" ID="LiteralID" /><br />
省市:<asp:DropDownList ID="DropDownListProvince" runat="server"></asp:DropDownList><br />
级别:<asp:Literal Text="" runat="server" ID="LiteralLevel" /><br /> </div>
<asp:Repeater ID="RepeaterList" runat="server">
<HeaderTemplate>
<table>
<tr>
<th>编号</th>
<th>省</th>
<th>级别</th>
<th>操作</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("ID") %></td>
<td><%#Eval("Name") %></td>
<td><%#Eval("Pid") %></td>
<td>
<asp:LinkButton Text="修改" runat="server" ID="LinkUpdate" OnClick="LinkUpdate_Click" CommandArgument='<%#Eval("ID") %>' />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater> </form>
</body>
</html>
Default.aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; namespace Wolfy.DropDownListDemo
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DropDownListProvince.DataSource = GetList();
DropDownListProvince.DataTextField = "Name";
DropDownListProvince.DataValueField = "ID";
DropDownListProvince.DataBind();
RepeaterList.DataSource = GetList();
RepeaterList.DataBind();
}
protected List<Province> GetList()
{
List<Province> list = new List<Province>();
list.Add(new Province() { ID = , Name = "北京", Pid = });
list.Add(new Province() { ID = , Name = "上海", Pid = });
list.Add(new Province() { ID = , Name = "河南", Pid = });
list.Add(new Province() { ID = , Name = "河北", Pid = });
list.Add(new Province() { ID = , Name = "湖南", Pid = });
list.Add(new Province() { ID = , Name = "湖北", Pid = });
return list;
} protected void LinkUpdate_Click(object sender, EventArgs e)
{
LinkButton link = sender as LinkButton;
if (link != null)
{
int id = Convert.ToInt32(link.CommandArgument);
Province pro = GetList().Find(a => a.ID == id);
this.LiteralID.Text = pro.ID.ToString();
this.LiteralLevel.Text = pro.Pid.ToString();
//DropDownList的index是从零开始的 而绑定的数据的ID是从1开始的,所以为了对应需减一
//改变默认选中项
this.DropDownListProvince.SelectedIndex = pro.ID-;
}
}
}
}
方式二
protected void LinkUpdate_Click(object sender, EventArgs e)
{
LinkButton link = sender as LinkButton;
if (link != null)
{
int id = Convert.ToInt32(link.CommandArgument);
Province pro = GetList().Find(a => a.ID == id);
this.LiteralID.Text = pro.ID.ToString();
this.LiteralLevel.Text = pro.Pid.ToString();
//方式二
ListItem item = DropDownListProvince.Items.FindByText(pro.Name);
if (item != null)
{
//防止出现多选的情况,将选中项 清除
DropDownListProvince.ClearSelection();
item.Selected = true;
}
}
}
当时lz载跟头的地方就是报DropDownList出现多选的bug,很无语,这里没办法还原那个bug的场景了,就这样记录一下吧。在报出现那个错误时,将选中项清除就可以了。
总结
工作中,遇到的一个小bug,总结一下,提醒自己以后不要再犯这样的低级错误,无法饶恕。
Demo下载:http://pan.baidu.com/s/1sjJcutf
[Asp.net]DropDownList改变默认选中项的两种方式的更多相关文章
- .Net默认IE版本号的两种方式
1.直接在页面的header部位meta标签中加入如下代码 <meta http-equiv="X-UA-Compatible" content="IE=8&quo ...
- Asp.net Web API 返回Json对象的两种方式
这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...
- eclipse 使用tomcat运行JavaWeb项目,文件修改后为何不用重启tomcat? (运行web项目的4种方式)探究
1.情景说明 在eclipse中,为什么Java文件修改后,重启tomcat class文件才能生效? 为什么jsp修改后,不需重启tomcat就能立即生效? 为什么静 ...
- ASP.NET Web API接受AngualrJS的QueryString的两种方式
ASP.NET Web API如何接受来自AngualrJS的QueryString呢?本篇体验两种方式. 第一种方式:http://localhost:49705/api/products?sear ...
- angularjs通过ng-change和watch两种方式实现对表单输入改变的监控
angularjs通过ng-change和watch两种方式实现对表单输入改变的监控 直接上练习代码 <!DOCTYPE html> <html xmlns="http:/ ...
- TOMCAT下面发布项目的4种方式
摘要 TOMCAT下面发布项目的4种方式,可用于在平时资料查询. 第一种方法: 将web项目文件件拷贝到webapps 目录中:或者直接通过Eclipse发布到Tomcat上. 第二种方法: 在tom ...
- linux 设置开机启动项两种方式
原文链接:http://blog.csdn.net/karchar/article/details/52489572 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务. 在解问题之前 ...
- win10应用程序添加到开机启动项的两种解决办法
原文 win10应用程序添加到开机启动项的两种解决办法 在windows10系统中,如果想让应用程序在开机之后自动运行起来,可以怎么做呢? 方法一: 1.首先创建应用程序的快捷方式 找到自己想加入开机 ...
- struts2设置<s:select>默认选中项的方法
struts2的select标签中,常用的有以下几个属性:(1)struts2中的select 标签中,必须设置的属性只有一个,即是list.(2)select标签的list中必须有值,不然会报错.如 ...
随机推荐
- ubuntu上安装MySQL详解
1. 安装 在终端输入 sudo apt-get install mysql-server mysql-client 回车 2.安装完成后检测MySQL的状态 systemctl status my ...
- curl 发送请求的时候报错
AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see ...
- JNDI(Java Naming and Directory Interface,Java命名和目录接口)
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访 ...
- [Ext JS 4] MVC 应用程序框架
前言 大型客户端应用程序总是很难编写,很难组织和很难维护.随着功能的增加和更多的开发人员加入项目,对项目的控制也越来越困难了.Ext JS 4 提供了一个新的应用程序框架帮助组织代码. 模型 - 一组 ...
- MySql学习笔记——触发器
今天又学习了一下mysql触发器的相关知识,对此做了一些笔记和总结. 定义及作用 触发器是一个被指定关联到一个表的数据对象,触发器不需要调用,当对一个表的特别事件出现时,它就会被激活.触发器的代码也是 ...
- Mysql修改语句的运行流程
执行修改语句前要先连接数据库,这是连接器的工作. 接下来,分析器会通过词法和语法解析知道这是一条更新语句.优化器决定要使用 ID 这个索引.然后,执行器负责具体执行,找到这一行,然后更新. Mysql ...
- 使用jdk自带的工具native2ascii 转换Unicode字符和汉字
1.控制台转换 1.1 将汉字转为Unicode: C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii 测试 \u6d4b\u8bd5 1.2 ...
- loadrunner中自定义查找并替换函数
globas.h中定义 //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来: // ------------------------------ ...
- OOD沉思录 --- 面向动作与面向对象 --- 避免泛滥成灾的类
3.7 从设计中取出不需要的类 只有Get/Set方法的类不算是一个必要的类,Get/Set方法也不算是有意义的行为.这种类降级为属性更加合适. 3.8 去除系统外部的类 如果一个类只调用系统领域的方 ...
- EOJ 3256 拼音魔法
模拟. 有$a$先标$a$,其次是$o$和$e$,$o$和$e$在韵母中不会同时存在.最后是$u$和$i$,这两个字母在韵母中可能同时存在,标在后面的那个.输出那些字符的话直接输出就可以了. 举几个例 ...