Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 两个gridview';s选定的indexchanged事件不起作用_C#_Asp.net_Gridview - Fatal编程技术网

C# 两个gridview';s选定的indexchanged事件不起作用

C# 两个gridview';s选定的indexchanged事件不起作用,c#,asp.net,gridview,C#,Asp.net,Gridview,我在一个页面中设置了两个Gridview。一个选定的索引已更改事件的加载另一个事件。但第二个网格的selectedindexchanged事件与第一个网格的selectedindexchanged事件相同。我能做什么?我的函数名是正确的。没有任何冲突 下面是我的asp代码: <asp:GridView ID="gdv" runat="server" AutoGenerateColumns="False" onrowdatabound="gdv_RowDat

我在一个页面中设置了两个Gridview。一个选定的索引已更改事件的加载另一个事件。但第二个网格的selectedindexchanged事件与第一个网格的selectedindexchanged事件相同。我能做什么?我的函数名是正确的。没有任何冲突

下面是我的asp代码:

<asp:GridView ID="gdv" runat="server" 
                AutoGenerateColumns="False" onrowdatabound="gdv_RowDataBound" 
                onselectedindexchanged="gdv_SelectedIndexChanged" AllowPaging="True" 
                Width="100%" onpageindexchanging="gdv_PageIndexChanging">
                <Columns>
                    <asp:BoundField DataField="Sl" HeaderStyle-HorizontalAlign="Center" 
                        HeaderText="SL #" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle HorizontalAlign="Center" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SalesOrderNo" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Order No" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SectionID" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Section Id" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SectionName" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Section Name" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="OutletID" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Outlet Id" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="OutletName" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="outlet Name" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="SalesPersonID" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Sales Person Name" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="OrderDate" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Order Date" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="OrderValue" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Order Value" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                   <asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:CheckBox ID="checkOrderList" runat="server" ValidationGroup="ValCheckOrder" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
                       <ItemTemplate>
                    <%--<asp:LinkButton ID="btnView" Text="View" runat="server" CommandName="ViewIndividualOrder" />--%>
                     <asp:Button ID="btnViewOrder" runat="server" Text="View" ValidationGroup="ValCheckOrder"
                        CommandName="ViewIndividualOrder" OnClick="btnViewOrder_Click" />
                </ItemTemplate>
                    </asp:TemplateField>

                </Columns>
                <PagerStyle HorizontalAlign="Center" />
            </asp:GridView>

<asp:GridView ID="gdvOrderDetail" runat="server" 
                AutoGenerateColumns="False" onrowdatabound="gdvOrderDetail_RowDataBound" 
                onselectedindexchanged="gdvOrderDetail_SelectedIndexChanged" AllowPaging="True" 
                Width="100%" onpageindexchanging="gdvOrderDetail_PageIndexChanging">
                <Columns>
                    <asp:BoundField DataField="Sl" HeaderStyle-HorizontalAlign="Center" 
                        HeaderText="SL #" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle HorizontalAlign="Center" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField DataField="ProductID" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Product ID" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="ProductName" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Product Name" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="UnitID" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Unit" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
                    <asp:BoundField DataField="PacketSize" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Packet Size" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
               <asp:TemplateField HeaderText="Sales Rate" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                     <asp:Label ID="lblSalesRate" runat="server" Text='<%# Eval("SalesRate") %>' Font-Size="Smaller" />
                </ItemTemplate>
            </asp:TemplateField>
                   <%-- <asp:BoundField DataField="SalesRate" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Sales Rate" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>--%>
                    <asp:BoundField DataField="OrderQty" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Order Qty" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>
              <asp:TemplateField HeaderText="MemoQty" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <asp:TextBox ID="txtMemoQty" runat="server" Font-Bold="True" Width="100px" OnTextChanged="txtMemoQty_TextChanged"
                        AutoPostBack="true" Enabled="true" onkeypress="return onlyNumbers();"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidatorMemoQTY" ValidationGroup="ValCheckOrderDetail"
                        runat="server" ControlToValidate="txtMemoQty" ErrorMessage="*" Font-Size="X-Large"
                        ForeColor="Red"></asp:RequiredFieldValidator>
                </ItemTemplate>
            </asp:TemplateField>
             <asp:TemplateField HeaderText="Amount" ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                     <asp:Label ID="lblAmount" runat="server" Text='<%# Eval("Amount") %>' Font-Size="Smaller" />
                </ItemTemplate>
            </asp:TemplateField>
                    <%--<asp:BoundField DataField="Amount" HeaderStyle-HorizontalAlign="Left" 
                        HeaderText="Amount" ItemStyle-HorizontalAlign="Left">
                    <HeaderStyle HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                    </asp:BoundField>--%>
                   <asp:TemplateField HeaderText="Select" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:CheckBox ID="checkOrderList" runat="server" ValidationGroup="ValCheckOrderDetail" />
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                <PagerStyle HorizontalAlign="Center" />
            </asp:GridView>

C#代码:

protectedvoid gdv\u SelectedIndexChanged(对象发送方,事件参数e)
{
int indx=0;
indx=gdv.SelectedIndex;
字符串salesforderno=“”;
字符串sectionid=“”;
字符串sectionname=“”;
字符串outletid=“”;
字符串outletname=“”;
字符串salersonname=“”;
字符串orderdate=“”;
字符串ordervalue=“”;
字符串ordercheck=“”;
对于(int i=0;i<1;i++)
{
salesorderno=gdv.Rows[indx]。单元格[1]。Text.ToString();
sectionid=gdv.Rows[indx]。单元格[2]。Text.ToString();
sectionname=gdv.Rows[indx]。单元格[3]。Text.ToString();
outletid=gdv.Rows[indx]。单元格[4]。Text.ToString();
outletname=gdv.Rows[indx]。单元格[5]。Text.ToString();
salersonName=gdv.Rows[indx]。单元格[6]。Text.ToString();
orderdate=gdv.Rows[indx]。单元格[7]。Text.ToString();
ordervalue=gdv.Rows[indx]。单元格[8]。Text.ToString();
ordercheck=gdv.Rows[indx]。单元格[9]。Text.ToString();
}
lblOrderNo.Text=销售订单号;
lblSectionName.Text=节名;
lblOutletName.Text=outletname;
lblOrderDate.Text=订单日期;
LoadOrderReportDetailGrid(salesorderno);
}
受保护的void gdvOrderDetail\u SelectedIndexChanged(对象发送方,事件参数e)
{
}

测试足以知道事件的起因。 例如:

        private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if(dataGrid1.SelectedItem!=null)
                MessageBox.Show("aaaaaaaaaaa");
        }

        private void dataGrid2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dataGrid2.SelectedItem != null)
                MessageBox.Show("BBBBBbbBBBB    ");
        }

只需打开GridView的事件窗口,然后选择其中一个,然后在事件窗口双击“selected index changed”事件。它会将您移至代码部分。如果过程为true,则事件绑定为true。如果没有,您必须更改程序的定义

这是一个简单的过程

  • 复制程序内的代码并将其粘贴到安全的地方
  • 删除与GridView相关的过程
  • 检查事件页面的GridView,确保“selected index changed”事件中没有任何内容
  • 双击第一个GridView“选定索引已更改”事件。它将创建一个空白过程。将相关代码粘贴到此处
  • 第二步也是这样
  • 另一件事是在properties窗口中检查GridView的验证组。它们应该是不同的:)


    不:请原谅我不能直接编写代码。因为我没有自己的电脑。我希望它能工作。

    你能展示一些代码吗?这是什么意思?我在一个页面中设置了两个Gridview。所选索引已更改事件的加载另一个事件?我只能在代码中看到一个网格?谢谢。我通过采用新的网格解决了这个问题。问题在于验证名称。
            private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if(dataGrid1.SelectedItem!=null)
                    MessageBox.Show("aaaaaaaaaaa");
            }
    
            private void dataGrid2_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if (dataGrid2.SelectedItem != null)
                    MessageBox.Show("BBBBBbbBBBB    ");
            }