Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-使用列表框填充其他字段_C#_Asp.net_Listbox - Fatal编程技术网

C#-使用列表框填充其他字段

C#-使用列表框填充其他字段,c#,asp.net,listbox,C#,Asp.net,Listbox,我正在尝试使用ListBox控件的选定值,用其文本属性填充TextBox,用其值属性填充HiddenField。听起来很简单,我就这么说: currentGroupTextBox.Text = currentSiteGroupList.SelectedItem.Text; currentGroupHiddenField.Value = currentSiteGroupList.SelectedValue; 但在执行时,ASP.NET返回一个错误: Object reference not se

我正在尝试使用ListBox控件的选定值,用其文本属性填充TextBox,用其值属性填充HiddenField。听起来很简单,我就这么说:

currentGroupTextBox.Text = currentSiteGroupList.SelectedItem.Text;
currentGroupHiddenField.Value = currentSiteGroupList.SelectedValue;
但在执行时,ASP.NET返回一个错误:

Object reference not set to an instance of an object.

并突出显示第一行。currentGroupTextBox和currentGroupHiddenField是在ASPX文件中启用的两个控件,因此我不太清楚ASP.NET为什么会抱怨实例化它们。

我敢打赌,您的第一行引用的是
currentSiteGroupList。请选择EdItem
,因为这似乎是最有可能成为空引用的候选者。确保您的代码在ASP.NET页面生命周期中的正确位置执行,以便在后台正确设置
SelectedItem

我敢打赌,您的第一行肯定会被引用
currentSiteGroupList阻塞。SelectedItem
,因为这似乎是最有可能成为空引用的候选者。确保您的代码在ASP.NET页面生命周期中的正确位置执行,以便在后台正确设置
SelectedItem

SelectedItem从当前站点组列表中选择。SelectedItem可能为空(表示没有选择)。在将其分配给currentGroupTextBox之前,需要对其进行测试。Text

从currentSiteGroupList中选择EdItem。SelectedItem可能为空(表示未选择)。在将其分配给currentGroupTextBox之前,需要对其进行测试。Text

是currentGroupTextBox还是currentGroupTextBox为空? 在调试中,如果在该行停止..是否有一个或两个不存在? 我发现的一个常见问题是,控件放在asp formview或类似控件上,因此对该控件的引用实际上不是它的id/名称,而是更可能需要这样做

TextBox myTextBoxReference = (TextBox) formName.FindControl("currentGroupTextBox")
string theValue = myTextBoxReference.Text
另一个经常出现的问题是页面生命周期。因此,如果您的对象不在表单上,但在回发中存在之前,您可能正在引用它。
hth

是currentGroupTextBox还是currentGroupTextBox为空? 在调试中,如果在该行停止..是否有一个或两个不存在? 我发现的一个常见问题是,控件放在asp formview或类似控件上,因此对该控件的引用实际上不是它的id/名称,而是更可能需要这样做

TextBox myTextBoxReference = (TextBox) formName.FindControl("currentGroupTextBox")
string theValue = myTextBoxReference.Text
另一个经常出现的问题是页面生命周期。因此,如果您的对象不在表单上,但在回发中存在之前,您可能正在引用它。
hth

我将尝试收集您所有问题的答案,包括评论中的问题

  • 即使
    SelectionMode=“Single”
    ,列表框也会在未选择任何内容的情况下启动,除非您指定了应在代码中选择的项目

  • 要测试SelectedItem是否为空,请使用以下代码:

  • 加载列表框的页面加载代码是什么样子的?如果(!Page.IsPostBack)检查,是否用
    包装?否则,按下按钮并启动回发将重新加载列表框,从而丢失用户选择的SelectedItem

  • 我将尝试收集您所有问题的答案,包括评论中的问题

  • 即使
    SelectionMode=“Single”
    ,列表框也会在未选择任何内容的情况下启动,除非您指定了应在代码中选择的项目

  • 要测试SelectedItem是否为空,请使用以下代码:

  • 加载列表框的页面加载代码是什么样子的?如果(!Page.IsPostBack)检查,是否用
    包装?否则,按下按钮并启动回发将重新加载列表框,从而丢失用户选择的SelectedItem

  • SelectedItem不是通过在列表框中选择一个项目来设置的吗?此时,通过单击按钮执行代码,并在页面_Load()中填充列表。是否通过在列表框中选择项目来设置SelectedItem?此时,通过单击按钮执行代码,并在页面_Load()中填充列表。如果不选择列表中的某个内容,如何使currentSiteGroupList.SelectedItem不为null?SelectionMode设置为Single,因此我认为,即使在列表框中没有主动单击的情况下,默认(第一个)项至少会在最初设置属性,尝试测试currentSiteGroupList.SelectedItem返回相同的错误,因为该对象仍然没有实例化。@Furism:SelectedItem属性将为空,除非您手动选择列表中的项目或通过编程设置SelectedItem/SelectedItem属性。您不能在设计时设置这些属性,因为它们被标记为[Browsable(false)]对不起,这就是我的意思。即使手动选择某个项目,也会出现问题。如果不选择列表中的某个项目,如何使currentSiteGroupList.SelectedItem不为空?SelectionMode设置为Single,因此我认为,即使在列表框中没有主动单击的情况下,默认(第一个)项至少会在最初设置属性,尝试测试currentSiteGroupList.SelectedItem返回相同的错误,因为该对象仍然没有实例化。@Furism:SelectedItem属性将为空,除非您手动选择列表中的项目或通过编程设置SelectedItem/SelectedItem属性。您不能在设计时设置这些属性,因为它们被标记为[Browsable(false)]对不起,这就是我的意思。即使手动选择了某个项目,也会出现问题。即。列表在每个页面中都“重新加载”。最优雅的方式是什么?我仍然需要在显示页面时加载页面,但我需要确保SelectedItem不会同时“重置”。假设视图状态为活动状态,则不需要在每次回发时加载列表框。您只需将(!Page.IsPostPack)置于