C# 是否在插入数据之前执行DataBind()?
为什么在C# 是否在插入数据之前执行DataBind()?,c#,asp.net,data-binding,C#,Asp.net,Data Binding,为什么在DataBind()下面的代码中,只有在Insert() 工作代码: DataView dvTransportadora = dtTransportadora.DefaultView; dvTransportadora.Sort = "NICKNAME ASC"; ddlTransportadora.DataSource = dvTransportadora; ddlTransportadora.DataValueField = "ID_CUSTOMER"; ddlTransporta
DataBind()
下面的代码中,只有在Insert()
工作代码:
DataView dvTransportadora = dtTransportadora.DefaultView;
dvTransportadora.Sort = "NICKNAME ASC";
ddlTransportadora.DataSource = dvTransportadora;
ddlTransportadora.DataValueField = "ID_CUSTOMER";
ddlTransportadora.DataTextField = "NICKNAME";
ddlTransportadora.DataBind();
ListItem lstItmSelecione = new ListItem("SELECT", "0");
ddlTransportadora.Items.Insert(0, lstItmSelecione);
DataView dvTransportadora = dtTransportadora.DefaultView;
dvTransportadora.Sort = "NICKNAME ASC";
ddlTransportadora.DataSource = dvTransportadora;
ddlTransportadora.DataValueField = "ID_CUSTOMER";
ddlTransportadora.DataTextField = "NICKNAME";
ListItem lstItmSelecione = new ListItem("SELECT", "0");
ddlTransportadora.Items.Insert(0, lstItmSelecione);
ddlTransportadora.DataBind();
非工作代码:
DataView dvTransportadora = dtTransportadora.DefaultView;
dvTransportadora.Sort = "NICKNAME ASC";
ddlTransportadora.DataSource = dvTransportadora;
ddlTransportadora.DataValueField = "ID_CUSTOMER";
ddlTransportadora.DataTextField = "NICKNAME";
ddlTransportadora.DataBind();
ListItem lstItmSelecione = new ListItem("SELECT", "0");
ddlTransportadora.Items.Insert(0, lstItmSelecione);
DataView dvTransportadora = dtTransportadora.DefaultView;
dvTransportadora.Sort = "NICKNAME ASC";
ddlTransportadora.DataSource = dvTransportadora;
ddlTransportadora.DataValueField = "ID_CUSTOMER";
ddlTransportadora.DataTextField = "NICKNAME";
ListItem lstItmSelecione = new ListItem("SELECT", "0");
ddlTransportadora.Items.Insert(0, lstItmSelecione);
ddlTransportadora.DataBind();
在“非工作代码”中,“选择”项不出现,数据绑定()不必刷新dropdownlist?当您进行数据绑定时,由于您正在设置数据源,因此实际上删除了以前存在的内容。但是,一旦绑定到数据,就可以添加到列表中。下次你刷新时,它可能就不在了
为了防止新值被覆盖,可以直接添加到数据源中。例如,假设该控件绑定到一个对象,则可以调用AddNew方法。如果数据来自数据库,则需要将新值添加到数据库中,然后再次调用DataBind,或者根据您的场景执行任何必要的操作。当您进行数据绑定时,由于您正在设置数据源,因此实际上删除了以前存在的内容。但是,一旦绑定到数据,就可以添加到列表中。下次你刷新时,它可能就不在了
为了防止新值被覆盖,可以直接添加到数据源中。例如,假设该控件绑定到一个对象,则可以调用AddNew方法。如果数据来自数据库,则需要将新值添加到数据库中,然后再次调用DataBind,或者根据您的场景执行任何必要的操作。绑定数据时,将清除集合中当前的所有项,并为数据源中的每个新项创建新项
您需要将附加项添加到基础数据源,而不是将其插入控件本身,或者,您需要执行第一个示例中的操作,并在直接插入任何项之前绑定数据。绑定数据时,将清除集合中当前的所有项,并为数据源中的每个新项创建新项
您或者需要将附加项添加到基础数据源中,而不是将其插入控件本身,或者需要执行第一个示例中所做的操作,并在直接插入任何项之前绑定数据。DataBind()仅在Insert()之前“起作用”,因为DataBind()将清除dropdownlist中的所有数据,并将所有数据添加到数据源中。因此,在数据绑定之前插入的任何内容都将被删除或清除 DataBind()只在Insert()之前“起作用”,因为DataBind()将清除dropdownlist中的所有数据,并将所有数据添加到数据源中。因此,在数据绑定之前插入的任何内容都将被删除或清除 DropDownList是一个ListControl,所有ListControl都有一个名为AppendDataBoundItems的属性(默认为false)。如果将此属性设置为true,则由于DataBind()调用而创建的任何项都不会首先清除已存在的项,而是将它们附加到列表中。在这种情况下不应清除您自己的项。DropDownList是一个ListControl,所有ListControl都有一个名为AppendDataBoundItems的属性(默认为false)。如果将此属性设置为true,则由于DataBind()调用而创建的任何项都不会首先清除已存在的项,而是将它们附加到列表中。在这种情况下,不应清除您自己的项目