我知道有很多问题和答案,但不适用于我
尝试通过以下代码中的函数填充此下拉列表:
当用户选择一个并点击"更新"网格视图中的链接按钮我需要在图像名称后插入一个后缀(对于路径), 因此,如果用户从列表中选择一个图像名称更新按钮,它将实际更新文件名+插入路径的开头,因此它将是
../图像/ 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" />
下拉列表选择的值。我怎样才能做到这一点?
答案 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;
}