Кнопка выбора в ASP. NET не выбирает строку - PullRequest
1 голос
/ 10 июля 2020

У меня есть сетка, когда я пытаюсь добавить новый столбец со значком выбора, с помощью которого я хочу выбрать всю строку.

Вот мой файл разметки .aspx, в который я добавил новый столбец содержащий UniqueName = "uc_select"

<telerik:RadGrid ID="contractRadGrid" runat="server" AllowPaging="True"
     AllowSorting="True" CellSpacing="0" GridLines="None" PageSize="15"
     OnNeedDataSource="contractRadGrid_NeedDataSource" OnItemCommand="contractRadGrid_ItemCommand"
     OnDeleteCommand="contractRadGrid_DeleteCommand" OnInsertCommand="contractRadGrid_InsertCommand"
     OnUpdateCommand="contractRadGrid_UpdateCommand" OnItemDataBound="contractRadGrid_ItemDataBound">
     <MasterTableView CommandItemDisplay="Top" AutoGenerateColumns="false" InsertItemPageIndexAction="ShowItemOnCurrentPage"
            DataKeyNames="ID,InstituteID,PositionID" AllowSorting="false" Name="Test">
          <CommandItemSettings ExportToPdfText="Export to PDF" AddNewRecordText="Add Contract"
                               AddNewRecordImageUrl="../images/plus2.png" />
                            <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column" Visible="True">
                            </RowIndicatorColumn>
                            <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column" Visible="True">
                            </ExpandCollapseColumn>
                            <Columns>
                                  <%--new column added--%>
                                <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="uc_select">
                                    <ItemStyle  CssClass="MyClass" />
                                    <HeaderStyle CssClass="MyClass" />
                                    <ItemTemplate>
                                    </ItemTemplate>
                                </telerik:GridTemplateColumn>
                                <telerik:GridBoundColumn DataField="InstituteName" HeaderText="Institution Name" UniqueName="InstituteName" ItemStyle-CssClass="breakWord">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="PositionName" HeaderText="Position" UniqueName="PositionName" ItemStyle-CssClass="breakWord">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="BillRate" HeaderText="Bill Rate" UniqueName="BillRate" ItemStyle-CssClass="breakWord">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="PayRate" HeaderText="Pay Rate" UniqueName="PayRate" ItemStyle-CssClass="breakWord">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn DataField="EffectiveDate" HeaderText="Effective Date" UniqueName="EffectiveDate"
                                    DataType="System.DateTime" DataFormatString="{0:MM-dd-yyyy}" ReadOnly="true">
                                </telerik:GridBoundColumn>

                                <telerik:GridEditCommandColumn ButtonType="LinkButton" HeaderText="Edit" />
                                <telerik:GridButtonColumn ButtonType="LinkButton" CommandName="Delete" ConfirmDialogHeight="100px" HeaderText="Delete"
                                    ConfirmDialogType="Classic" ConfirmDialogWidth="330px" ConfirmText="Delete this contract?"
                                    ConfirmTitle="Delete" Text="Delete">
                                </telerik:GridButtonColumn>
                            </Columns>

и более поздних версий в файле cs этой страницы событие contractRadGrid_ItemDataBound, я пытаюсь показать свою кнопку выбора, как показано ниже

protected void contractRadGrid_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Test")
    {
        GridDataItem item = (GridDataItem)e.Item;
        if (item != null)
        {
            string selectImage = "background:url('images/select_sm_wh.png') no-repeat  center ;";
            item["uc_select"].Attributes.Add("style", selectImage);
        }
    }
    //GridDataItem item = (GridDataItem)e.Item;
    //if (item != null)
    //{
    //    string selectImage = "background:url('images/select_sm_wh.png') no-repeat  center ;";
    //    item["uc_select"].Attributes.Add("style", selectImage);
    //}

    if (e.Item != null && e.Item is GridEditableItem && e.Item.IsInEditMode && e.Item.ItemIndex > -1)
    {
        GridEditableItem gridEditableItem = (GridEditableItem)e.Item;
        RadComboBox instituteName = gridEditableItem.FindControl("instituteName") as RadComboBox;
        instituteName.SelectedValue = ((DataRowView)e.Item.DataItem).Row["InstituteID"].ToString();
        instituteName.Text = ((DataRowView)e.Item.DataItem).Row["InstituteName"].ToString();

        RadComboBox ddlJobTitle = gridEditableItem.FindControl("ddlJobTitle") as RadComboBox;
        ddlJobTitle.SelectedValue = ((DataRowView)e.Item.DataItem).Row["PositionID"].ToString();
    }
}

Проблема в том, что отображается кнопка выбора в первом столбце, но когда я нажимаю кнопку выбора, выделяется не вся строка.

Так что я здесь делаю не так? А что нужно изменить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...