当我想将值放在从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());
答案 0 :(得分:1)
问题是:
Convert.ToString(item);
将简单地调用对象的ToString()方法并存储该对象,在这种情况下,它将为您提供对象的类型。在这种情况下,类型是System.Data.DataRowView。我建议您使用以下方法访问所需行中的特定字段:
((DataRowView)item).Row["FieldName"].ToString();
代替。您将要替换&#34; FieldName&#34;无论您想要的是什么名称,都可以使用。此外,您可以使用int索引而不是字符串引用。当然,如果需要访问多个字段,可以通过简单的字符串连接来完成。问题是您需要访问所需的特定字段。不是你现在的整行。
我希望这有帮助!
一对参考:DataRow,DataRowView
答案 1 :(得分:0)
我认为你的values []数组不对。请参阅MSDN上的这个例子。
答案 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).