<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>
在编辑中,我喜欢使一个字段不可见。 我正在使用以下代码,但它想检查是否是最佳实践:
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 :(得分:0)
这只是一个建议的选择。我和telerik一起工作了几次,至少可以说是痛苦的。您可以做的还是向父容器添加第三个条件。如果处于编辑模式,则显示一个类,例如&#39;编辑&#39;或&#39;当前&#39;。如果不处于编辑模式,请不要显示课程。然后,在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"
。
我提供的只是一个例子。我希望你找到它的用途。感谢
答案 1 :(得分: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
}
}
如果您需要更多信息,请与我们联系。