我是c#和asp.net的新手。我有GridView
的某些记录。选择任何记录后,它将显示在DetailsView
中。我的详细信息视图有3个DropDownLists
。在我的详细信息视图的编辑模式中,当我在下拉列表中更改我的选择并更新它时,特定字段采用空值。我使用了OnSelectedIndexChanged
并且我确定它被触发但是值为null。这是我的代码。
protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)
{
DropDownList ddl = (DropDownList)this.form1.FindControl("DropDownList1");
hi.Visible = true;
if (ddl != null)
{
ddl.Text = ddl.SelectedItem.Value;
ddl.DataBind();
}
}
我也尝试使用SelectedValue
属性进行更新,但也没有用。
<asp:DropDownList ID="DropDownList1" DataTextField="strCollegeLongName"
DataValueField="strCollegeLongName" runat="server"
DataSourceID="SqlDataSource1" autoPostBack="true" AppendDataBoundItems="false"
SelectedValue='<%#Bind="College">%'>
</asp:DropDownList>
UpdateCommand="UPDATE [RegistrationFormInfo] SET [FirstName]=@FirstName,
[LastName]=@LastName,[EmailAddress]=@EmailAddress,[GradDate]=@GradDate,
[WorkAuth]=@WorkAuth,[Address]=@Address,[Phone]=@Phone,[UFID]=@UFID,
[GatorAcct]=@GatorAcct,[College]=@College,[Major]=@Major,[UserType]=@UserType,
[AdminUser]=@AdminUser,[blnActive]=@blnActive,[EntryTS]=@EntryTS WHERE [Guid]=@Guid "
所以,在这里它会抛出一个错误,说@College
不存在,但我的表格有College
列。
我被困住了,非常感谢任何帮助!
答案 0 :(得分:1)
嗯,@ College错误可能是关于未提供的命名参数,而不是关于缺少的列。
答案 1 :(得分:1)
代替DropDownList ddl = (DropDownList)this.form1.FindControl("DropDownList1");
,试试这个:
DropDownList ddl = (DropDownList)sender;
`
答案 2 :(得分:1)
致电ddl.DataBind();
将重置SelectedIndex
。为了避免代码中的循环逻辑,在ddl的DataBind()
事件处理程序中调用SelectedIndexChanged
是个坏主意。