выполняет итерацию по всей таблице
blockquote>for (int i = 0; i < rowCount; i++) { Android.Widget.TableRow row = (Android.Widget.TableRow)tableLayout.GetChildAt(i); for (int j = 0; j < columnCount; j++) { TextView cell = (TextView) row.GetChildAt(j); var value = cell.Text; } }
получает любое конкретное значение ячейки
blockquote>, например. получить значение ячейки (1,2)
Android.Widget.TableRow row = (Android.Widget.TableRow)tableLayout.GetChildAt(1); TextView cell = (TextView) row.GetChildAt(2); var value = cell.Text;
Можно использовать respond_to в rescue_action контроллера или rescue_action_in_public методе. Рассмотрите следующий контроллер:
class DefaultController < ApplicationController
def index
raise "FAIL"
end
def rescue_action(exception)
respond_to do |format|
format.html { render :text => "Rescued HTML" }
format.js { render :action => "errors" }
end
end
end
Это было моим конечным решением:
def rescue_action_in_public(exception)
response_code = response_code_for_rescue(exception)
status = interpret_status(response_code)
respond_to do |format|
format.html { render_optional_error_file response_code}
format.js { render :update, :status => status do |page| page.redirect_to(:url => error_page_url(status)) end}
end
end
Это в основном вперед к корректной статической странице HTML, неважно, если запрос был через Ajax или нормален, ДОБИРАЕТСЯ/POST.
Это НЕ используется для нормальной обработки ошибок как проверка и т.д. Это только используется, когда что-то действительно плохо происходит - как необработанное исключение.
Я решил подобную проблему с авторизацией. Я создал простой контроллер авторизации с этим действием:
def unauthorizedxhr
render :update do |page|
page.replace_html("notice", :partial=>"unauthorizedxhr")
page.show("notice")
end
end
Вот шаблон:
<% if flash[:notice] -%>
<div id="noticexhr"><%= flash[:notice] %></div>
<% end -%>
Когда авторизация перестала работать в контроллере, я перенаправил бы к: контроллер => "авторизация": действие => "unauthorizedxhr" после установки флэш-памяти [: заметьте] значение. Это позволило мне настраивать сообщение, которое я отправил пользователю, и оно обработало дисплей сообщения посредством рендеринга: обновите код выше.
Вы могли адаптировать это к своей проблеме путем создания ошибочного контроллера, фиксации любых повышенных ошибок в других контроллерах, затем просто перенаправления к: контроллер => "ошибки": действие => "displayxhr", когда вызов перестал работать. Тем путем Вы стандартизируете свой ошибочный механизм связи, но позволите себе способность настроить сообщения об ошибках каждым действием.
Можно все еще использовать идею карты в минуту выше, но дисплей ошибки будет обработан отдельной и отличной логикой контроллера. это должно сделать немного легче поддержать.
Надежда, которая помогает. - Chris