将 onClick 添加到 Infragistics WebDataGrid

Add an onClick to an Infragistics WebDataGrid

我有一个 Infragistics WebDataGrid,我想在每次单击单元格时触发服务器端事件。我知道我可以制作一个按钮并向其添加一个 onclick,但我希望部分或所有数据单元格都可以单击。 我也看到了这个(https://www.infragistics.com/community/forums/f/ultimate-ui-for-asp-net/108226/onclick-event-for-webdatagrid)但是我需要这个事件来触发服务器端。

您可以尝试以下方法:

  1. 处理 "Click" client event and call __doPostBack js function to trigger a postback. Page_Load server event will help you to determine whether the postback is caused by the click or not. Things to consider, client event "Click" will be fired on every click inside the Grid, have a look at the provided API link 了解更多信息。
  2. 激活选择行为,并处理 CellSelectionChanged 客户端事件。从这里使用 __doPostBack.
  3. 的方法

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"];

...