Sean8084 Ответов: 2

Скрыть строку в детальном представлении


Мне нужно скрыть первую строку подробного представления, но в подробном представлении есть ключевой элемент dataitem, который читается другой частью кода. когда я пытаюсь перейти на сторону ASP и выбрать visible = false внутри строки, код позади нее больше не вызывает эти данные. код выглядит следующим образом:
<asp:detailsview ID="" runat="server" datakeynames="BICID">
     <fields>
          <asp:boundfield datafield="BICID" Headetertext="BICID"        

          SortExpression="BICID" Visible="false"/>
     </fields>


BICID-это ключевой элемент данных, который тянет следующий код:

protected void submitbttn_click(object sender, eventargs e)
{
     String bicidstring = detailsview1.rows[0].cells[1].text;
}


Этот код работал до того, как установить видимую строку в false, есть ли вообще возможность скрыть эту строку, а код за ней все еще работает?

2 Ответов

Рейтинг:
2

Prerak Patel

Вы можете попробовать установить InsertVisible="False" ReadOnly="True"
Это позволит скрыть элемент в режиме вставки и только для чтения в режиме редактирования.


Sean8084

но он вообще не должен быть виден, и нет режимов вставки или редактирования, есть текстовое поле в detailsview, которое я использую для обновления (вместе с отдельной кнопкой для отправки)

Рейтинг:
0

Fandango68

- Вот именно. После того как вы установили невидимую строку или элемент управления внутри DetailsView или любого другого элемента управления представлением, этот элемент управления больше не виден ни пользователю, ни коду, стоящему за ним. Это ASP.net для тебя!
Вы должны программно скрыть строку в коде после того, как загрузили данные в DetailsView.
Я предлагаю вам поместить элемент управления OnDataBound() в DetailsView и использовать простой

detailsview1.rows[0].visible = false;

или
DetailsView1.Fields[1].Visible = false;

чтобы скрыть строку, но снова после того, как вы получили данные и поместили их в глобальную переменную, которая позже может быть использована в вашем событии click.
Единственный другой способ, который я могу придумать, - это сделать эту строку невидимой для пользователя, сделав forecolor и backcolor одинаковыми.
Также рассмотрите возможность использования
Style.Add("display","none");
Я обнаружил, что это иногда работает, когда вы не можете использовать свойство Visible.