为什么我们不能使用单个ListItem对象在DropDownList ASP.net中添加项目

德鲁夫·加内什(Dhruv Ganesh)

在ASP.net(C#)中对DropDownList使用相同的ListItem对象时,它将显示最后一项“文本和值”。该代码写在下面,

protected void Button1_Click(object sender, EventArgs e)  
{  
    ListItem itm = new ListItem();  
    itm.Text = "AAA";  
    itm.Value = "AAA";  
    DropDownList1.Items.Add(itm);  

    itm.Text = "BBB";  
    itm.Value = "BBB";  
    DropDownList1.Items.Add(itm);  

    itm.Text = "CCC";  
    itm.Value = "CCC";  
    DropDownList1.Items.Add(itm);  

    itm.Text = "DDD";  
    itm.Value = "DDD";  
    DropDownList1.Items.Add(itm);  
}  

DropDownList显示4个项目,但所有项目的文本均为“ DDD”。但是如果我加上

itm = new listItem();

在分配新的文本和值之前,它会根据需要显示。AAA,BBB,CCC,DDD。

是什么原因?

谷神星

ListItem是一个对象,内存中只有一个实例。变量itm仅将对象的地址保存在内存中。当您将列表项添加到下拉列表中时,该下拉列表会在内部将地址复制到变量中。因此,您要将同一对象添加4次到下拉列表中。稍后呈现下拉列表并检查“文本”和“值”属性时,将使用您在上述代码中设置的最后一个值“ DDD”来设置它们。

使用New将在内存中实例化一个新对象,并且变量中的地址将指向该新对象。

查找有关引用与值类型的主题,这应该有助于您了解发生了什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们不能使用rank()分析函数删除表中的重复项?

来自分类Dev

为什么我们不能使用rank()分析函数删除表中的重复项?

来自分类Dev

为什么我们不能使用scanf直接初始化struct中的变量?

来自分类Dev

为什么我不能使用HttpContext或HttpCookie?(Asp.Net Core 1.0)

来自分类Dev

如何从控制器的asp .net mvc dropdownlist中添加额外的项目

来自分类Dev

使用AngularJs + Web API,为什么我们需要ASP.NET MVC和IIS?

来自分类Dev

使用AngularJs + Web API,为什么我们需要ASP.NET MVC和IIS?

来自分类Dev

如何将CSS添加到我的项目asp.net mvc中?

来自分类Dev

为什么我们不能使用C中的表达式为全局变量赋值?

来自分类Dev

ASP.NET MVC DropdownList在滚动时添加项目

来自分类Dev

ASP.NET MVC dropdownlist在滚动时添加项目

来自分类Dev

为什么我们在ASP .NET 5 wwwroot中需要web.config?

来自分类Dev

ASP.NET 页面加载事件为什么项目没有被添加到下拉列表控件中

来自分类Dev

为什么在我的Web API(ASP.NET v5)项目中添加依赖项不能完全起作用?

来自分类Dev

为什么我们需要从ASP.NET Core 2.1迁移到3.1

来自分类Dev

为什么我们需要在 asp.net 中将 varchar 更改为 string?

来自分类Dev

我们可以在asp.net中添加现成的html代码吗?

来自分类Dev

为什么我们需要在ASP.NET MVC中调用父类的空虚方法

来自分类Dev

为什么我们不再需要在更高版本的ASP.NET Core中手动验证模型?

来自分类Dev

在DropDownList ASP.NET MVC中获取选定的项目

来自分类Dev

从ASP.NET C#中的DropDownList删除项目

来自分类Dev

为什么我们不能使用Java子类方法中的super关键字来调用超类构造函数?

来自分类Dev

为什么我们不能使用超类的引用变量来访问其子类的方法(超类中没有的方法)?

来自分类Dev

为什么我们不能像在javascript中为对象常量那样向函数体内的函数对象添加属性?

来自分类Dev

为什么我们不能/不能在内核编程中同样使用OOP概念?

来自分类Dev

为什么我们不能在构造函数中创建非静态自引用对象

来自分类Dev

为什么我们不能在构造函数中创建非静态自引用对象

来自分类Dev

为什么我们在添加html服务器控制器时不需要编译asp.net代码

来自分类Dev

使用ASP.NET在日历中添加事件

Related 相关文章

  1. 1

    为什么我们不能使用rank()分析函数删除表中的重复项?

  2. 2

    为什么我们不能使用rank()分析函数删除表中的重复项?

  3. 3

    为什么我们不能使用scanf直接初始化struct中的变量?

  4. 4

    为什么我不能使用HttpContext或HttpCookie?(Asp.Net Core 1.0)

  5. 5

    如何从控制器的asp .net mvc dropdownlist中添加额外的项目

  6. 6

    使用AngularJs + Web API,为什么我们需要ASP.NET MVC和IIS?

  7. 7

    使用AngularJs + Web API,为什么我们需要ASP.NET MVC和IIS?

  8. 8

    如何将CSS添加到我的项目asp.net mvc中?

  9. 9

    为什么我们不能使用C中的表达式为全局变量赋值?

  10. 10

    ASP.NET MVC DropdownList在滚动时添加项目

  11. 11

    ASP.NET MVC dropdownlist在滚动时添加项目

  12. 12

    为什么我们在ASP .NET 5 wwwroot中需要web.config?

  13. 13

    ASP.NET 页面加载事件为什么项目没有被添加到下拉列表控件中

  14. 14

    为什么在我的Web API(ASP.NET v5)项目中添加依赖项不能完全起作用?

  15. 15

    为什么我们需要从ASP.NET Core 2.1迁移到3.1

  16. 16

    为什么我们需要在 asp.net 中将 varchar 更改为 string?

  17. 17

    我们可以在asp.net中添加现成的html代码吗?

  18. 18

    为什么我们需要在ASP.NET MVC中调用父类的空虚方法

  19. 19

    为什么我们不再需要在更高版本的ASP.NET Core中手动验证模型?

  20. 20

    在DropDownList ASP.NET MVC中获取选定的项目

  21. 21

    从ASP.NET C#中的DropDownList删除项目

  22. 22

    为什么我们不能使用Java子类方法中的super关键字来调用超类构造函数?

  23. 23

    为什么我们不能使用超类的引用变量来访问其子类的方法(超类中没有的方法)?

  24. 24

    为什么我们不能像在javascript中为对象常量那样向函数体内的函数对象添加属性?

  25. 25

    为什么我们不能/不能在内核编程中同样使用OOP概念?

  26. 26

    为什么我们不能在构造函数中创建非静态自引用对象

  27. 27

    为什么我们不能在构造函数中创建非静态自引用对象

  28. 28

    为什么我们在添加html服务器控制器时不需要编译asp.net代码

  29. 29

    使用ASP.NET在日历中添加事件

热门标签

归档