2015-03-24 4 views
0
<telerik:RadGrid runat="server" ID="rdReport" AutoGenerateColumns="false" AllowPaging="true" Skin="Metro" OnItemCommand="ItemCommand" OnItemDataBound="rdReport_ItemDataBound" OnPreRender="rdReport_PreRender" DataSourceID="FountainSource" AllowAutomaticUpdates="true" AllowAutomaticDeletes="true"> 
    <MasterTableView DataKeyNames="ID" CommandItemDisplay="None"> 
     <Columns> 
      <telerik:GridEditCommandColumn ButtonType="ImageButton" />         
      <telerik:GridBoundColumn DataField="LocName" HeaderText="Location" ReadOnly="true" /> 
      <  
      <telerik:GridBoundColumn DataField="Field1Value" HeaderText="Custom Field1" /> 
      <telerik:GridBoundColumn DataField="Field2Value" HeaderText="Custom Field2" /> 
      <telerik:GridBoundColumn DataField="Field3Value" HeaderText="Custom Field3" /> 

      <telerik:GridButtonColumn ConfirmText="Delete?" ConfirmDialogType="RadWindow" 
       ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" /> 
     </Columns> 
     <EditFormSettings> 
      <EditColumn ButtonType="ImageButton" /> 
     </EditFormSettings> 
    </MasterTableView> 
    <PagerStyle Mode="NextPrevAndNumeric" /> 
</telerik:RadGrid> 

On Edit, я хотел бы сделать поле невидимым. Я использую следующий код, который работает, но необходимо проверить, чтобы увидеть, если это лучшая практика:RadGrid сделать поле невидимым на Редактировать

protected void rdReport_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    // Edit Mode 
    if ((e.Item is GridEditFormItem) && (e.Item.IsInEditMode)) 
    { 
     GridEditFormItem fndColumn = (GridEditFormItem)e.Item; 
     fnColumn["Field1Value"].Parent.Visible = false; 
    } 
} 

ответ

0

Решение, которое было предоставлено вами, идеально подходит, но было бы неплохо, если вы также добавите свойство UniqueName в каждом столбце. Если мы не будем присваивать имя UniqueName, это будет считаться значением DataField как UniqueName.

ASPX

<telerik:GridButtonColumn DataField="Field1Value" HeaderText="Custom Field1" UniqueName="Field1Value" /> 

ASPX.CS

protected void rdReport_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    // Edit Mode 
    if ((e.Item is GridEditFormItem) && (e.Item.IsInEditMode)) 
    { 
     GridEditFormItem fndColumn = (GridEditFormItem)e.Item; 
     fnColumn["Field1Value"].Parent.Visible = false; // "Field1Value" is column uniquename 
    } 
} 

Позвольте мне знать, если вам требуется дополнительная информация.

0

Это просто предложил альтернативу. Я работал с телериком несколько раз, и это боль, мягко говоря. То, что вы можете сделать, также добавляет третичное условие к родительскому контейнеру. Если в режиме редактирования, покажите класс, например, «изменить» или «текущий». Если не в режиме редактирования, не показывайте класс. Затем в вашем CSS вы можете выбрать любой элемент, который вы хотите скрыть.

<div> 
<input type="text" id="whateverisgenerated" class="uniqueclass" /> 
</div> 

Затем, когда в режиме редактирования, вы будете иметь

<div class="edit"> 
<input type="text" id="whateverisgenerated" class="uniqueclass" /> 
</div> 

С вашей помощью CSS:

div.edit input.uniqueclass { display: none; } 

Как для управления Telerik (я просто схватил что-то из вашего кода), вы можете сделать следующее, чтобы добавить свой класс:

<telerik:GridButtonColumn ConfirmText="Delete?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" CssClass="uniqueclass" /> 

Я добавил CssClass="uniqueclass" в контроле выше.

То, что я представил, является лишь примером. Надеюсь, вы найдете для этого пользу. Спасибо

+0

Я бы предложил использовать свойство видимости на стороне сервера вместо свойства отображения на стороне клиента. Возможно, что некоторые пользователи могут изменить свое свойство отображения в браузере (используя инструмент разработчика) и обновить/увидеть его значение. –

+0

Я разработчик пользовательского интерфейса, а не сервер :) Но да, я думаю, что решение на стороне сервера лучше. Я просто хотел пройти альтернативу. Спасибо Джайешу. – Pegues

Смежные вопросы