微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Telerik Radgrid UserControl将文本框设置为只读

如何解决如何使用Telerik Radgrid UserControl将文本框设置为只读

我有一个Telerik RadGrid,它使用用户控件来编辑插入。如此配置

 <MasterTableView AutoGenerateColumns="false" CommandItemdisplay="Top"
                        DataKeyNames="Form_UsageId" Font-Size="Medium"
                        NoMasterRecordsText="No Transfer Locker Records Added" InsertItemPageIndexAction="ShowItemOnCurrentPage"
                        CommandItemSettings-AddNewRecordText="Add New Transfer Locker Entry">
                        <Columns>
                            <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"></telerik:GridEditCommandColumn>
                            <telerik:GridBoundColumn UniqueName="CaseNumber" HeaderText="Case Number" datafield="CaseNumber"></telerik:GridBoundColumn>
                            <telerik:GridBoundColumn UniqueName="ItemCount" HeaderText="# of Items" datafield="ItemCount"></telerik:GridBoundColumn>
                            <telerik:GridBoundColumn UniqueName="PersonFor" HeaderText="Person Intended For" datafield="PersonIntendedFor"></telerik:GridBoundColumn>
                            <telerik:GridBoundColumn UniqueName="PersonAdding" HeaderText="Person Putting In" datafield="PersonAdding"></telerik:GridBoundColumn>
                            <telerik:GridDateTimeColumn datafield="DateIn" HeaderText="Date Put In"
                                PickerType="DatePicker" EnableTimeIndependentFiltering="true" DataFormatString="{0:MM/dd/yyyy}">
                            </telerik:GridDateTimeColumn>
                            <telerik:GridBoundColumn UniqueName="TotalDays" HeaderText="# Days Open" datafield="TotalDays"></telerik:GridBoundColumn>
                        </Columns>
                        <EditFormSettings UserControlName="TransferLockerUserControl.ascx" EditFormType="webusercontrol" PopUpSettings-Modal="false">
                            <EditColumn UniqueName="EditCommandColumn1"></EditColumn>
                        </EditFormSettings>
                    </MasterTableView>

我正在使用用户控件来编辑记录,我需要将一些文本框设置为只读。这就是我尝试过的

if (e.Item.IsInEditMode && e.Item is GridEditableItem)
        {
            if (e.Item.ItemIndex == -1)
            {
                // insert
                GridEditableItem item = e.Item as GridEditableItem;

            }
            else
            {
                // edit
                GridEditableItem item = e.Item as GridEditableItem;
                (item["CaseNumber"].Controls[0] as TextBox).ReadOnly = true;
            }

        }

这失败并产生错误

enter image description here

有人可以帮我解决这个问题吗?

解决方法

我已经找到了解决这个问题的答案,我已经在下面发布了工作代码。

if (e.Item.IsInEditMode && e.Item is GridEditableItem)
        {
            if (e.Item.ItemIndex == -1)
            {
                // insert
                GridEditableItem item = e.Item as GridEditableItem;

            }
            else
            {
                // edit
                GridEditableItem item = e.Item as GridEditableItem;
                UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID);
                TextBox txt = (TextBox)userControl.FindControl("txtCaseNumber"); //access TextBox here
                txt.ReadOnly = true;
            }

        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。