【问题标题】:How to get value from datalist in c#?如何从 C# 中的 datalist 中获取值?
【发布时间】:2015-10-17 10:01:59
【问题描述】:

我正在尝试从 DataList 中检索一个值以在某些公式中使用它

所以我尝试了这段代码并将其包含在OnClick 按钮事件中:

float fQ = float.Parse(Qtytb.Text);
float ftotal;
float fitem = float.Parse(pricelst.SelectedItem.ToString());
ftotal = fQ * fitem;
totaltb.Text = ftotal.ToString();

但此时它给了我空指针异常

( float fitem = float.Parse(pricelst.SelectedItem.ToString()); )

我怎样才能让它工作?

【问题讨论】:

  • 你应该检查pricelst.SelectedIndex >= 0

标签: c# asp.net vb.net datalist


【解决方案1】:

在下面添加验证

if(pricelst.SelectedItem != null)
{
  //your code....

}

【讨论】:

    【解决方案2】:

    您需要检查pricelstpricelst.SelectedItem 是否为空并适当处理这些情况。例如,您可以使用float.TryParse(...) 或空合并运算符??

    举个例子:

    给定班级

       private class Foo
       {
           public string SelectedItem { get; set; }
       } 
    

    像这样检查 null:

    Foo pricelst = new Foo();

        float fitem;
    
        if(float.TryParse(pricelst.SelectedItem, out fitem))
        {
            // set defaults here
            fitem = 0;
        }
    

    【讨论】:

      【解决方案3】:

      试试

      var selectedItemValue =  pricelst.SelectedItem == null ? "0" : pricelst.SelectedItem.ToString();
      var selectedItemFloat = float.Parse(selectedItemValue);
      var fQ = float.Parse(Qtytb.Text);
      var ftotal = fQ * selectedItemFloat;
      totaltb.Text = ftotal.ToString();
      

      【讨论】:

      • 它总共给了我“0”!有没有其他方法可以获取数据列表中元素的值?
      • @SuperGirl 这没有意义......这意味着 pricelst.SelectedItem 为空,换句话说,它没有设置。也许你应该显示代码......你认为你正在将它设置为一个值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 2021-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多