c#CheckedListbox值

时间:2015-06-15 13:33:33

标签: c# checkedlistbox

当我想将值放在从checkedlistbox中选择的数组中时。然后说:

  

messagebox.show(值[0]);

它说:System.Data.DataRowView

这是我目前的代码:

def generate_bulk_pdf
  view = ActionView::Base.new(ActionController::Base.view_paths, {})
  view.extend(ApplicationHelper)
  view.extend(AbstractController::Rendering)
  view.extend(Rails.application.routes.url_helpers)
  students = Student.all.order('id ASC')
    students.each do | aStudent |
    pdf = WickedPdf.new.pdf_from_string(
       view.render_to_string(
         :template => "#{Rails.root.join('templates/challen.pdf.erb')}",
         :locals => { '@student' => aStudent }
       )
    )
    save_path = Rails.root.join('pdfs','filename.pdf')
    File.open(save_path, 'wb') do |file|
      file << pdf
    end
  end
end

我在这里做错了什么&gt;?

编辑::

        string[] itemArr = new string[clbTables.CheckedItems.Count];
        int counter = 0;
        foreach (object item in this.clbTables.CheckedItems)
        {
            string temp = Convert.ToString(item);
            itemArr[counter] = temp;
            counter++;
        }
        MetroMessageBox.Show(this, itemArr[0].ToString());

3 个答案:

答案 0 :(得分:1)

问题是:

Convert.ToString(item);

将简单地调用对象的ToString()方法并存储该对象,在这种情况下,它将为您提供对象的类型。在这种情况下,类型是System.Data.DataRowView。我建议您使用以下方法访问所需行中的特定字段:

((DataRowView)item).Row["FieldName"].ToString();

代替。您将要替换&#34; FieldName&#34;无论您想要的是什么名称,都可以使用。此外,您可以使用int索引而不是字符串引用。当然,如果需要访问多个字段,可以通过简单的字符串连接来完成。问题是您需要访问所需的特定字段。不是你现在的整行。

我希望这有帮助!

一对参考:DataRowDataRowView

答案 1 :(得分:0)

我认为你的values []数组不对。请参阅MSDN上的这个例子。

https://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.checkeditems(v=vs.110).aspx

答案 2 :(得分:0)

string temp = ((CheckBox)item).Text;

You are passing in the object, not the object's text (which is what it seems you want the code to do).