Android: Как динамически включить XML-макет?

Я хочу разложить свой пользовательский интерфейс на несколько XML-макетов. Первый будет основным макетом, а другие - макетами содержимого.

Я хотел бы иметь возможность устанавливать, какой content_layout должен динамически включаться во время выполнения, m может установить jQuery с помощью btnDelete.Attributes ["onclick"] и установить код диалога jQuery в коде программной части. Тем не менее, он отправляет обратно на сервер во всех случаях, прежде чем я успею нажать «Подтвердить» или «Отменить».

Вот HTML-код, который он создает:

<input type="submit" rel="Are you sure?" class="action-link delete" id="ctl00_c1_gvTransfers_ctl02_btnDelete" onclick="return function() { 
            $('#delete-transfer-confirm').dialog({
              buttons: {
                'Confirm' : function() { $(this).dialog('close'); return true; },
                'Cancel'  : function() { $(this).dialog('close'); return false; }
              }
            });

            $('p.message').text($(this).attr('rel'));
            $('#delete-transfer-confirm').dialog('open');
          };" value="Delete" name="ctl00$c1$gvTransfers$ctl02$btnDelete">

Что я делаю не так, из-за чего эта функция не блокируется, пока не будет нажата какая-либо кнопка?

И наоборот, стандартное подтверждение работает нормально:

<input type="submit" class="action-link delete" id="ctl00_c1_gvTransfers_ctl02_btnDelete" onclick="try{if (!window.confirm('Are you sure?')){return false;};}catch(e1){alert(&quot;Unexpected Error:\n\n&quot; + e1.toString());return false;};" value="Delete" name="ctl00$c1$gvTransfers$ctl02$btnDelete">

Спасибо, Марк

ОБНОВЛЕНИЕ:

В конечном итоге мне пришлось использовать UseSubmitBehavior = "false", чтобы получить атрибут name = "" для рендеринга. Затем мне пришлось переопределить OnClientClick, установив значение "return;" поэтому __doPostBack () по умолчанию не выполняется. Затем я смог подключить обработчик кликов .live (), который вызывает __doPostBack () при подтверждении:

$('input.delete').live('click', function(e) {
        var btnDelete = $(this);
        alert($(btnDelete).attr('name'));
        e.preventDefault();


        $('#delete-transfer-confirm').dialog({
          buttons: {
            'Confirm': function() {
              $(this).dialog('close');
              __doPostBack($(btnDelete).attr('name'), '');

              return true;
            },
            'Cancel': function() {
              $(this).dialog('close');
              return false;
            }
          }
        });

        $('p.message').text($(this).attr('rel'));
        $('#delete-transfer-confirm').dialog('open');
      });
8
задан Mark Richman 29 October 2010 в 13:51
поделиться