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

在父GridView的RowEditing事件上更改下拉选择的值

如何解决在父GridView的RowEditing事件上更改下拉选择的值

我在updatepanel中有这个gridview:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" ForeColor="Black"
GridLines="Horizontal" Height="100%" Width="100%" HorizontalAlign="Justify" CssClass="table-responsive-lg table-striped table-hover" CellPadding="5" Style="text-align: center" OnRowEditing="GridView1_RowEditing">

该行上的此编辑按钮:

<ItemTemplate>
<asp:LinkButton ID="btnSelect" runat="server" CausesValidation="False" CommandName="Edit"
ToolTip="Seleziona"><i class="far fa-hand-point-up fa-3x" aria-hidden="true"></i></asp:LinkButton>
</ItemTemplate>

在EditItemTemplate中的下拉菜单

    <asp:TemplateField HeaderText="Mittente" SortExpression="Mittente">
    <ItemTemplate>
        <asp:Label ID="Label3" runat="server" Text='<%#: Bind("Mittente") %>' CssClass="content"></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <div style="text-align: left">
            <div class="wrapper">
                <asp:Button ID="btnPrendiMail" runat="server" Text="Prendi" OnClick="btnPrendiMail_Click" CssClass="btn btn-default" />
                <asp:sqlDataSource ID="sqlClienti" runat="server"
                    ConnectionString="<%$ ConnectionStrings:dbVulcanoConnectionString %>"
                    SelectCommand="select idcliente,RagSociale,concat(ragsociale,' [',idcliente,']') as Descr from clienti order by RagSociale"></asp:sqlDataSource>
                <asp:DropDownList ClientIDMode="Static" OnSelectedindexChanged="ddlClienti_SelectedindexChanged" ID="ddlClienti" runat="server" Font-Size="X-Large" Font-Bold="True" AutopostBack="true" DataSourceID="sqlClienti" DataTextField="Descr" DataValueField="idCliente" AppendDataBoundItems="true" CssClass="select2-single form-control-div" >
                    <asp:ListItem Text="-- Cerca Cliente per ID o Ragione Sociale --" Value="0" Selected="True"></asp:ListItem>
                </asp:DropDownList>
            </div>

            <asp:Label ID="lblEmailMittente" ClientIDMode="Static" runat="server" Text='<%#: Bind("Mittente") %>' CssClass="content"
                Visible="false"></asp:Label>
        </div>
    </EditItemTemplate>
    <ItemStyle Width="10%" />
</asp:TemplateField>

按下“编辑”按钮时,我将更改下拉列表的选定值,并在gridview的RowEditing事件上执行此子例程:

Protected Sub GridView1_RowEditing(sender As Object,e As GridViewEditEventArgs)
        Dim gvRow As GridViewRow = GridView1.Rows.Item(e.NewEditIndex())
        Dim ddlClienti As DropDownList = TryCast(gvRow.FindControl("ddlClienti"),DropDownList)
        Dim lblEmailMittente As Label = TryCast(gvRow.FindControl("lblEmailMittente"),Label)

        If dbVulcano.emails.Any(Function(m) m.email = lblEmailMittente.Text) Then
            Dim email As emails = dbVulcano.emails.Where(Function(m) m.email = lblEmailMittente.Text).SingleOrDefault
            ddlClienti.SelectedValue = email.rfCliente
            ddlClientiIndexChanged()
        End If
    End Sub

但是在调试它时,我看到ddlClienti = = nothing,因此例程失败。 什么是正确的方法?谢谢

解决方法

我在模板字段中使用计时器做了同样的事情

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