DropDownList 它有 SelectedValue, 这是不可接受的,因为它在元素列表中不存在。 参数名称:值

我继续在标题行中获得上述错误,并且它没有任何意义,因为我只使用示例性表 5 Notes,每个条目符合按照下拉菜单匹配值。

这是我用于声明下拉列表的代码。 我在数据源中连接了两个表 SQL, 要反映我想要填写网格演示文稿的内容,并且如有必要,具有隐藏列。 我使用相同的数据源来填写下拉列表。任何帮助都将非常感激。


<asp:dropdownlist appenddatabounditems="True" causesvalidation="True" datasourceid="GridView" datatextfield="Currency" datavaluefield="Currency_ID" id="DropDownListCurrency" runat="server">
<asp:listitem enabled="True" text="&lt;Select&gt;" value="0"></asp:listitem>
</asp:dropdownlist>



protected void GridView1_SelectedIndexChanged/object sender, EventArgs e/
{
try
{
GridViewRow row = GridView1.SelectedRow;

AccountNumber.Text = /string/row.Cells[0].Text;
....

DropDownListCurrency.SelectedValue = /string/row.Cells[8].Text;
}
catch /Exception ex/
{
Console.WriteLine/"{0} Exception caught.", ex/;
}
}
已邀请:

诸葛浮云

赞同来自:

尝试在尝试安装之前在下拉列表中找到值。 SelectedValue, 例如:


if /DropDownListCurrency.Items.FindByValue/row.Cells[8].Text.ToString//.Trim/// != null/
{
DropDownListCurrency.SelectedValue = row.Cells[8].Text.ToString//.Trim//;
}


注意:呼叫
Trim//

删除所有领先或 trailing 文本字段文本中的空格可能是无法找到巧合的原因。

因此,您的完整代码应该是这样的:


protected void GridView1_SelectedIndexChanged/object sender, EventArgs e/
{
try
{
GridViewRow row = GridView1.SelectedRow;

AccountNumber.Text = /string/row.Cells[0].Text;
....

if /DropDownListCurrency.Items.FindByValue/row.Cells[8].Text.ToString//.Trim/// != null/
{
DropDownListCurrency.SelectedValue = row.Cells[8].Text.ToString//.Trim//;
}
}
catch /Exception ex/
{
Console.WriteLine/"{0} Exception caught.", ex/;
}
}

奔跑吧少年

赞同来自:

这很简单只是使用它


Dropdown.SelectedValue = null;
Dropdown.DataBind//;

帅驴

赞同来自:

你好可以从你的这个细胞中 gridview 有一个空间或下拉列表有一个空格,例如是不一样的

美元__ = Dollarov。

或者

美元 = Dolarov__

在后面的代码中使用修剪以清洁空间 SQL Server 不使用 Rtrim 这不是一个很好的做法。

莫问

赞同来自:

下拉列表的值与数据库列中的值不同。

示例:下拉列表显示 Emma, 但在数据库中有 Emma 和 Emma1.

下拉列表找不到值 Emma1.

风见雨下

赞同来自:

如果下拉列表中的行处于关联表中的行,并且在数据库中不使用引用完整性,则会发生这种情况。 在我的情况下,我使用参考完整性,但是将逻辑值添加到下拉列表的条目说明 "Disabled" - 也就是说,我不再希望用户在下拉列表中选择此值。 因此,我过滤下拉列表以仅显示不存在的值 "Disabled", 但是,问题是现有数据已经​​可以包含此值,这导致上面的错误消息的出现 Edit 单击网格。

我应对这种情况的方式如下:

制作一个下拉列表,其中有问题,不合适以避免错误。

将以下代码添加到后面的代码:


protected void StaffTypeGridView_OnRowDataBound/object sender, GridViewRowEventArgs e/
{
if /e.Row.RowType != DataControlRowType.DataRow ||
e.Row.RowIndex != StaffTypeGridView.EditIndex/ return;

var staffType = /StaffType/e.Row.DataItem;
var appCode = staffType.AppCode;

var ddl = /DropDownList/ e.Row.FindControl/ddlName/;
if /!string.IsNullOrEmpty/value/ &&
ddl.Items.FindByValue/value/ == null/
{
ddl.Items.Add/new ListItem
{
Value = value,
Text = value + " /Deleted/"
}/;
}
ddl.SelectedValue = value;
}


不要忘记编写代码或 DropDownList_OnSelectedIndexChanged, 无论是in. GridViewOnRowUpdating, 将值更新回数据源 /因为这是一个未绑定的领域/.

添加自定义验证器 EditItemTemplate, 要确保无法输入删除数据,即用户 MUST 更改下拉列表中的值以保存。

这听起来很难解释,但这是一种提供这种功能的一种相当简单的方法,如果只有某人有最好的想法......

裸奔

赞同来自:

安装属性
Text


DropDownList

在 ASPX 缺少的值
ItemList

, 导致相同的错误。

在我的情况下,它遇到了我错误地添加了一个标签
meta-resourcekey

, 哪里物业
Text

它被设置为意义缺席
ItemList

.

资源值如下:


table {
border-collapse: collapse;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
table th, table td {
border: solid 1px darkgray;
padding: 0 5px;
}

table.tr:first//{

}



<table css="table">
<tr>
<th>Name</th>
<th>Value</th>
<th>Comment</th>
</tr>
<tr>
<td>Template.Text</td>
<td>Template</td>
<td></td>
</tr>
<tr>
<td>Template.ToolTip</td>
<td>template of standard outgoing email settings</td>
<td></td>
</tr>
</table>



和 ASPX 控制是:


<asp:dropdownlist cssclass="form-control dropdownlist" id="ddlTemplate" meta:resourcekey="Template" runat="server">
<asp:listitem meta:resourcekey="TemplateEmpty" selected="True" value="EMPTY"></asp:listitem>
<asp:listitem meta:resourcekey="TemplatePOP3" selected="False" value="POP3"></asp:listitem>
<asp:listitem meta:resourcekey="TemplatePOP3Secured" selected="False" value="POP3S"></asp:listitem>
<asp:listitem meta:resourcekey="TemplateIMAP" selected="False" value="IMAP"></asp:listitem>
<asp:listitem meta:resourcekey="TemplateIMAPSecured" selected="False" value="IMAPS"></asp:listitem>
</asp:dropdownlist>


移动
meta:resourcekey

为我做了一份工作。

二哥

赞同来自:

#region by zia for if item not exist in dropdownlist
string qlf = dsEmp.Tables["tblEmp"].Rows[0]["Group"].ToString//;
ListItem selLqli = ddlGroup.Items.FindByText/qlf.Trim///;
if /selLqli != null/
{
ddlGroup.ClearSelection//;
}
else
{
ddlGroup.SelectedIndex = 0;

}
#endregion

小明明

赞同来自:

您可以使用该方法 Trim//


ddlname.Text = dt.Rows[0][3].ToString//.Trim//;

要回复问题请先登录注册