Добавить onClick в инфраструктуру WebDataGrid - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть Infragistics WebDataGrid, и я хочу запускать событие на стороне сервера при каждом нажатии на ячейку.Я знаю, что могу сделать кнопку и добавить к ней клик, но я хочу, чтобы некоторые или все ячейки данных были кликабельными.Я также видел это (https://www.infragistics.com/community/forums/f/ultimate-ui-for-asp-net/108226/onclick-event-for-webdatagrid), но мне нужно событие для запуска на стороне сервера.

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете попробовать следующее:

  1. Обработка «Клик» клиентское событие и вызов функции __ doPostBack js для запуска обратной передачи.Событие сервера Page_Load поможет вам определить, вызвана ли обратная передача щелчком или нет.Что нужно учесть, клиентское событие «Клик» будет запускаться при каждом щелчке внутри таблицы, для получения дополнительной информации ознакомьтесь с предоставленной ссылкой API .
  2. АктивироватьПоведение выбора и обработка события клиента CellSelectionChanged.Отсюда используйте подход с __ doPostBack .

Grid - это очень мощный элемент управления с богатым API и поведением, поэтому мы могли бы предложить другой способ достижения этого.

Фрагмент:

..
<script>
        function client_click(sender, evtArgs) {
            // First Approach
            __doPostBack('myRequest', "someValue");
        }

        function WDG_Selection_CellSelectionChanged(sender, eventArgs)
        {
            // Second Approach
            __doPostBack('myRequest', "someValue");
        }
</script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
    <div>
        <ig:WebDataGrid runat="server" ID="WDG" AutoGenerateColumns="False" Width="600px">
            <ClientEvents Click="client_click" />
            <Columns>
                <ig:BoundDataField DataFieldName="CategoryId" Key="CategoryId">
                    <Header Text="CategoryId">
                    </Header>
                </ig:BoundDataField>
                <ig:BoundDataField DataFieldName="CategoryName" Key="CategoryName">
                    <Header Text="CategoryName">
                    </Header>
                </ig:BoundDataField>
                <ig:BoundDataField DataFieldName="Description" Key="Description">
                    <Header Text="Description">
                    </Header>
                </ig:BoundDataField>
            </Columns>
            <Behaviors>
                <ig:EditingCore>
                    <Behaviors>
                        <ig:CellEditing>
                            <CellEditingClientEvents EnteringEditMode="entering_edit_mode" />
                        </ig:CellEditing>
                    </Behaviors>
                </ig:EditingCore>
                <ig:Selection>
                    <SelectionClientEvents CellSelectionChanged="WDG_Selection_CellSelectionChanged" />
                </ig:Selection>
            </Behaviors>
        </ig:WebDataGrid>


..

c #

protected void Page_Load(object sender, EventArgs e)
{
    string parameter = Request["__EVENTARGUMENT"];

...

...