在网格视图控件中查找控件

时间:2014-07-12 13:13:29

标签: c# asp.net

我知道有很多问题和答案,但不适用于我

尝试通过以下代码中的函数填充此下拉列表:

当用户选择一个并点击"更新"网格视图中的链接按钮我需要在图像名称后插入一个后缀(对于路径), 因此,如果用户从列表中选择一个图像名称更新按钮,它将实际更新文件名+插入路径的开头,因此它将是

  

../图像/ gary.jpg

代表gary。

  

aspx页面

 <asp:TemplateField>
                <EditItemTemplate>                      
                        <asp:DropDownList ID="ddlImages" runat="server">
                        <Items>
                            <asp:ListItem Text="Choose" Value="" />
                        </Items>
                    </asp:DropDownList>
                </EditItemTemplate>
                ...
  

背后的代码

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DropDownList ddlImages = (e.Row.FindControl("ddlImages") as DropDownList);
            ShowImages(ddlImages);

        }
}

&#34; ddlImages&#34;是空的,我怎么能找到他?


管理以找到类似下拉列表:

if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if ((e.Row.RowState & DataControlRowState.Edit) > 0)
            {
                DropDownList ddlImages = (DropDownList)e.Row.FindControl("ddlImages");
                ddlImages.DataSource = GetImages();
                ddlImages.DataBind();
            }
        }

现在我面临另一个问题,在aspx中我有一个&#34; UpdateCommand&#34;它接受参数并尝试更新数据库。问题是 - 它需要采用dropDownList选择的值,而是需要:&#34;&#34;如何更改它以获取用户在dropDownList

中选择的值
  

aspx页面

    UpdateCommand="UPDATE [investigator] SET [name] = @name, [area] = @area, [country] = @country,     [picture] = @picture, [review] = @review WHERE [Id] = @Id">

 <UpdateParameters>
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="area" Type="String" />
            <asp:Parameter Name="country" Type="String" />
            <asp:Parameter Name="picture" Type="String" />
            <asp:Parameter Name="review" Type="String" />
            <asp:Parameter Name="Id" Type="Int32" />
        </UpdateParameters>

意思 - 我必须改变

<asp:Parameter Name="picture" Type="String" />

下拉列表选择的值。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

关于更新参数的问题,您应该使用ControlParameter而不是一般参数。尝试使用以下内容替换下拉列表的参数定义 代码。

<asp:ControlParameter Name="picture" ControlID="ddlImages" 
    PropertyName="SelectedValue" Type="String" />

<强>更新 你可以做的替代是,

将参数更改回

<asp:Parameter Name="picture" Type="String" />

将RowUpdating事件处理程序添加到gridview 在RowUpdating命令中,根据所选值设置数据源参数,如下所示

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

GridViewRow row = GridView1.Rows[e.RowIndex];
DropDownList ddlImages=  row.FindControl("ddlImages") as DropDownList;
SqlDataSource1.UpdateParameters["picture"].DefaultValue = ddlImages.SelectedValue;
}