我是这个论坛的新人,虽然我已经通过多年寻找答案。现在,我希望你帮助解决问题。我正在关注此link以在我的网格中制作我自己的DropDown列表并且正常工作直到这一行:
ddlCities.Items.FindByValue(country).Selected = True
在这里,我有错误:
对象引用未设置为对象的实例。
但我的代码在受影响的字段中是正确的:
这是Code Behind中的相关代码:
Protected Sub RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow AndAlso grdLinea.EditIndex = e.Row.RowIndex;
Dim ddlCities As DropDownList = DirectCast(e.Row.FindControl("ddlFacturarA"), DropDownList)
' Create the command with the sproc name and add the parameter required'
ddlCities.DataSource = GetData("select UPPER(DSCA_ZONA)as Zona from tb_personal where dsca_Zona <> 'NULL'group by dsca_zona order by dsca_zona")
ddlCities.DataTextField = "Zona"
ddlCities.DataValueField = "Zona"
ddlCities.DataBind()
'Add Default Item in the DropDownList
'ddlCountries.Items.Insert(0, New ListItem("Please select"))
Dim country As String = Trim(CType(e.Row.FindControl("lblFacturarA"), Label).Text)
ddlCities.Items.FindByValue(country).Selected = True
End If
End Sub
这是设计模式中受影响的代码:
<EditItemTemplate >
<asp:label ID="lblFacturarA" Value ='<%# Eval("facturar_a")%>' Visible ="false" runat="server" />
<asp:DropDownList
ID="ddlFacturarA"
CssClass="txt"
runat="server"
AutoPostBack="True" ValidationGroup="rfNewLineEmpty">
</asp:DropDownList>
<asp:RequiredFieldValidator
ID="rfNewLineFacturarA"
runat="server"
ErrorMessage="Obligatorio"
ValidationGroup="rfNewLine"
SetFocusOnError="True"
ControlToValidate="ddlFacturarA">
</asp:RequiredFieldValidator>
</EditItemTemplate>
我知道我是ASP.NET的新手,也许我顺便失去了一些东西,但是我已经将这段代码绕了两天而且看不到光。
你能告诉我一些关于这个错误的原因吗?
如果您需要更详细的信息来解决这个问题,请告诉我。
提前致谢
答案 0 :(得分:0)
如果您确定错误在ddlCities.Items.FindByValue(country).Selected = True
上且country
项在下拉列表中,我建议您仔细检查下拉列表项中是否有空格或大小写差异,国家变量。
因为FindByValue
找到了确切的项目并且区分大小写。
您应该尝试使用changin查询到RTRIM(LTRIM(UPPER(DSCA_ZONA))) as Zona
和
ddlCities.Items.FindByValue(country.ToUpper()).Selected = True
答案 1 :(得分:0)
对不起,因为我在外面的延迟,我想我已经用这种方式解决了
Dim country As String = Trim(CType(e.Row.FindControl(&#34; lblFacturarA&#34;),Label).Text) ddlCities.Items.Insert(0,country)
现在它工作正常,您认为这是一种有效的方法吗?
非常感谢!!!