关于gridview里面的放dropdownlist,如何设默认值

关于gridview里面的放dropdownlist,如何设默认值,第1张

首先你的DropdDownList的DataSource是通过直接绑定数据源实现的,这样的你要设置默认值,需要特殊处理,比如这个你可以直接在GridView的RowDataBound事件中绑定DropdownList的数据,通过var ddl = eRowFindControl("DropdownList") as DropdownList,然后如果ddl不为空就ddlItemsInsert(0, new ListItem("请选择", ""));也就是你的默认值,这样就行了。
但是像你说的直接添加ListItem的方案也是可以,只不过数据维护值是在Page上做,不用考虑cs端的逻辑了

$("#ID")combobox('setValue','默认值');
---------------------------------------------------------------
example:
<input id="cc" name="dept" value="aa"> //ComBoBox输入框
<script>
$('#cc')combobox({
url:'combobox_datajson',
valueField:'id',
textField:'text'
});
$("#cc")combobox('setValue','默认值');//根据ID设定默认值
</script>
-------------------------------------------------------
ComBoBox的数据源:
json 数据格式的示例
[{
"id":1,
"text":"text1"
},{
"id":2,
"text":"text2"
},{
"id":3,
"text":"text3",
"selected":true
},{
"id":4,
"text":"text4"
},{
"id":5,
"text":"text5"
}]

Model是django项目的基础,如果一开始没有好好设计好,那么在接下来的开发过程中就会遇到的问题然而,大多数的开发人员都容易在缺少思考的情况下随意的增加或修改model这样做的后果就是,在接下来的开发过程中,我们不得不做出努力来修正这些错误因此,在修改model时,一定尽可能的经过充分的考虑再行动!以下列出的是我们经常用到的一些工具和技巧:South,用于数据迁移,我们会在每个django项目中都用到但到django17时,将会有djangodbmigrations代替django-model-utils,用于处理常见的模式,例如TimeStampedModeldjango-extensions,主要用到shell_plus命令,该命令会在shell中自动载入所有的app的model1基本原则第一,将model分布于不同的app中如果你的django项目中,有一个app拥有超过20个model,那么,你就应当考虑分拆该app了我们推荐每个app拥有不超过5个model第二,尽量使用ORM我们需要的大多数数据库索引都能通过Object-Relational-Model实现,且ORM带给我们许多快捷方式,例如生成SQL语句,读取/更新数据库时的安全验证因此,如果能使用简单的ORM语句完成的,应当尽量使用ORM只有当纯SQL语句极大地简化了ORM语句时,才使用纯SQL语句并且,在写纯SQL语句是,应当优先考虑使用raw(),再是extra()第三,必要时添加index添加db_index=True到model中非常简单,但难的是理解何时应该添加在建立model时,我们事先不会添加index,只有当以下情况时,才会考虑添加index:在所有的数据库查询中使用率在10%-25%时或当有真实的数据,或能正确估计出使用index后的效果确实满意时第四,注意model的继承model的继承在django中需要十分小心,django提供了三种继承方式,1abstractbaseclass继承(不要和Pyhton标准库的abc模块搞混),2多表(multi-table)继承,3proxymodel继承下表罗列了这三种继承的优劣:model继承类型优势劣势不使用继承,即每个相同的field会重复出现在不同的model中容易明白model和数据表的关系如果有大量相同的field,会较难维护abstractbaseclass继承,即只有继承自该类的model才会有数据表,其自身没有对应的数据表不用在每个model重复编写相同的field也没有多表继承带来的过多消耗无法单独使用其共同的abstractbaseclass多表(multi-table)继承每个model都有数据表,因此可以既使用母表,又使用子表也能通过parentchild从母表访问子表增加了消耗,因为每次查询子表,都会自动查询其母表强烈建议不使用这一方法!proxymodel继承,即只有原始model才会有相应的数据表在不建立新数据表的情况下,使我们拥有不同行为的model无法修改model的fielddjango的创造者和其他许多开发人员都认为,多表继承的方法不是一个良好的方法因此我们强烈建议大家不要使用该方法下面列举了一些常见的如何选择model继承的情形:如果只有少数model拥有重复的field时,大可不必使用model继承,只需要在每个model中添加这些相同的field即可如果有足够的model拥有重复的field时,大多是情况下,可以使用abstractbaseclass继承,将相同的field提取到abstractbaseclass中Proxymodel继承很少被用到,和其他两种继承也有着许多不一样之处请不要使用多表(multi-table)继承,因为它既消耗资源又复杂,如果可以,尽量使用OneToOneFields和ForeignKeys代替django项目中,创建时间和修改时间这两个field是最用到的,下面给出一个abstractbaseclass继承的例子:#modelspyfromdjangodbimportmodelsclassTimeStampedModel(modelsModel):"""abstractbaseclass,提供创建时间和修改时间两个通用的field"""created=modelsDateTimeField(auto_now_add=True)modified=modelsDateTimeField(auto_now=True)classMeta:abstract=True注意以上代码的最后两行,正式这两行将这一model变味了abstractbaseclass,下面以TimeStampedModel为abstractbaseclass建立model:fromdjangodbimportmodelsclassArticle(TimeStampedModel):title=modelsCharField(max_length=200)以上两个class,在执行syncdb时,只会建立一个数据表,这也正是我们希望得到的第五,使用south进行数据迁移,可以参见以前的文章:如何在Django中使用django-south,实现数据迁移(datamigrations)2DjangoModel的设计如何设计出好的djangomodel可能是最难也是最复杂的一个话题了,在此,我们看看一些基本的技巧吧:a规范化我们首先建议了解数据库规范化(databasenormalization)如果你还不清楚这是什么,那么,我们强烈建议你先阅读一下相关的书籍,或搜索"关系型数据库设计"或"数据库规范化"在创建djangomodel之前,应当首先保证设计的数据库是规范化的bcache正确的使用cache能帮助我们提高数据库的性能详细的信息,我们会在今后的文章中作进一步介绍c何时使用null和blank当定义modelfield时,我们可以设置null=True和blank=True(默认都是False),知道何时设置null和blank对于开发人员也是十分重要的,在下面的表格中,我们一一列举了如何使用这两个选项:Field类型设置null=True设置blank=TrueCharField,TextField,SlugField,EmailField,CommaSeparatedIntegerField等不要设置django规定储存空字符串来代表空值,当从数据库中读取NULL或空值时都为空字符串可以设置设置后允许接受widget中为空值(即不填写),储存到数据库时空值变为空字符串FileField,ImageField不要设置django实际储存的是路径的字符串,因此同上可以设置同上BooleanField不要设置因为有NullBooleanField代替不要设置IntegerField,FloatField,DecimalField等可以设置如果你希望在数据库中能储存NULL可以设置设置后允许接受widget中为空值(即不填写),设置为True时必须同时设置null=TrueDateTimeField,DateField,TimeField等可以设置如果你希望在数据库中能储存NULL可以设置设置后允许接受widget中为空值(即不填写),设置为True时必须同时设置null=TrueForeignKey,ManyToManyField,OneToOneField可以设置如果你希望在数据库中能储存NULL可以设置设置后允许接受widget中为空值(即不填写)GenericIPAddressField可以设置如果你希望在数据库中能储存NULL可以设置设置后允许接受widget中为空值(即不填写)IPAddressField不推荐设置用GenericIPAddressField代替不推荐设置用GenericIPAddressField代替d什么时候使用BinaryField在django16中,新增了BinaryField,用于储存二进制数据(binarydata或bytes)对于BinaryField,我们无法使用ORM的filters,excludes或其他SQL *** 作但在少数情况下,我们会用到BinaryField,例如MessagePack格式的内容,传感器接受的原始数据和压缩数据等但需要注意的是,BinaryData一般都十分庞大,因此可能会拖慢数据库的速度如果发生这一现象,我们可以将binarydata储存在文件中,然后使用FileField储存该文件的路径信息还有,不要从BinaryField中直接读取文件并呈献给用户因为,1从数据库读写总是比从文件系统读写慢;2数据库备份会变得十分庞大,花费的时间;3获得文件的过程,增加了从django到数据库的这一环节3不要替换默认的ModelManager从ORM获取model,实际上是通过django中的Modelmanager完成的,django为每一个model提供了默认的modelmanager,我们不建议将其替换掉,因为:当使用model继承时,model会继承abstractbaseclassmodel的modelmanager,而不会继承非abstractbaseclass的managermodel的第一个modelmanager通常作为默认的manager,当被替换时,可能会发生不可预测的问题4数据库事务(Transaction)在django16中,ORM默认会autocommit每一个数据库查询,也就是说,每次使用mcreate()或mupdate()时,在数据库中马上就会做出相应的修改这样做的好处就是简化了初学者对ORM的理解但坏处就是,当一个view中包含两个数据库修改,可能一个成功,但另一个失败,这就可能导致数据库不完整,给我们带来很大的危险解决这一问题的方法就是使用数据库transaction,即将一系列数据库 *** 作包含在一个transaction中,当其中有一个失败时,其他 *** 作也会自动回退Django16为我们带来了一套崭新的既简单又强大的transaction机制,使我们方便的使用数据库transactiona将整个>Material组件库中提供了输入框组件TextField

TextField用于文本输入,它提供了很多属性,我们先简单介绍一下主要属性的作用,然后通过几个示例来演示一下关键属性的用法。

prefix和prefixText 以及suffix和suffixText 不能同时存在

获取输入内容

通过onChange回调
通过controller监听
_controller addListener(() {
print(_controller text);
});

两种方式相比,onChanged是专门用于监听文本变化,而controller的功能却多一些,除了能监听文本变化外,它还可以设置默认值、选择文本

这里我们就用到了focusNode

焦点可以通过FocusNode和FocusScopeNode来控制,默认情况下,焦点由FocusScope来管理,它代表焦点控制范围,可以在这个范围内可以通过FocusScopeNode在输入框之间移动焦点、设置默认焦点等。我们可以通过FocusScopeof(context) 来获取Widget树中默认的FocusScopeNode。

Flutter实战
>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13368818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存