Как сохранить значения, выбранные в Combobox на каждой странице во время разбиения на страницы в Perl? - PullRequest
1 голос
/ 04 октября 2010

вопрос касается того, как сохранить выбранное значение в Combobox во время нумерации страниц.«У меня есть выпадающий список, в котором есть некоторые значения, когда я выбираю 1 значение, то в соответствии с выбранным значением будет определено количество записей на странице, НО всякий раз, когда я перехожу на следующую страницу, тогда значение в выпадающем списке возвращается к первому значению».Вот кусок кода ..

Для Combobox

   print qq[<td>Records PerPage</td>];
   print qq[<td><select id="combo1" onchange="getCombo1(this.options
     [this.selectedIndex].value,$pageNum)"><option value="">Select</option><option
      value="2">2</option><option value="4" >4</option><option 
      value="6">6</option><option value="10">10</option></select></td></tr>];

Javascript

  <script type="text/javascript">
function getCombo1(offset,pagenumber)
 {
        var val1=pagenumber;
        var val2=offset;
       window.location="UsersList.cgi?pageNum="+val1+"&offset="+val2
 }

Код пагинации

    if ( $pageNum > 0 ) {
         print qq[<tr><td><a href="UsersList.cgi?
         pageNum=0&offset=$offset&SortBy=$SortBy&SortOrder=$SortOrder">|&lt;</a></td>];
    $pageN  = $pageNum - 1;
    print qq[<td><a href="UsersList.cgi?
     pageNum=$pageN&offset=$offset&SortBy=$SortBy&SortOrder=$SortOrder">&lt;</a></td>];
                      }
    else
      { 
    print q[<td><span class="currentpage">|&lt;</span></td>];
    print q[<td><span class="currentpage">&lt;</span></td>];
       }
  if ( $pageNum < ( $numofPages - 1 )) {
    $pageN  = $pageNum + 1;
    print qq[<td><a href="UsersList.cgi?
       pageNum=$pageN&offset=$offset&SortBy=$SortBy&SortOrder=$SortOrder">&gt;</a>
       </td>];
    $tempnumpage=$numofPages-1;
    print qq[<td><a href="UsersList.cgi?
       pageNum=$tempnumpage&offset=$offset&SortBy=$SortBy&SortOrder=$SortOrder">&gt;|
       </a></td>];
    }
    else {
       print q[<td><span class="currentpage">&gt;</span></td>];
       print q[<td><span class="currentpage">&gt;|</span></td>];
          }
       my  $temppageNumber=$pageNum+1;
      print qq[<td><b> $temppageNumber of $numofPages pages</b></td>];

Пожалуйста, помогите мне найти решение. Спасибо

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

Ваш код печати Combobox должен напечатать атрибут "selected" в соответствующем "<option>".

Для этого вам нужно перебрать значения параметров, печатая их одно за другим в цикле; и на соответствующем (соответствующем вашему $offset) выведите атрибут "selected". Как это обычно делается, похоже на это:

print qq[<td>Records PerPage</td>];
print qq[<td><select id="combo1" onchange="getCombo1(this.options
  [this.selectedIndex].value,$pageNum)"><option value="">Select</option>];

foreach my $value (2, 4, 6) {
    my $selected = ($offset == $value) ? "selected" : "";
    print qq[<option value="$value" $selected>$value</option>];
}
print qq[</select></td></tr>];
0 голосов
/ 19 декабря 2012
foreach(GridViewRow grRow in GridSubMenu.Rows)
{
   int i = int.Parse(GridSubMenu.DataKeys[grRow.RowIndex].Value.ToString()) -1; 

   MenuList =(DropDownList)(GridSubMenu.Rows[grRow.RowIndex].Cells[2].FindControl("ListMenu"));         

   Query = "Select menu_Id,menu_Name From tbl_menu Where menu_Id='" + int.Parse(dtSubMenu.Rows[i]["menu_Id"].ToString()) + "'";
   DataSet Menu = ObjDb.GetDataSet(Query);
   MenuList.DataTextField = "menu_Name";
   MenuList.DataValueField = "menu_Id";
   MenuList.DataSource =Menu.Tables[0];
   MenuList.DataBind();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...