【发布时间】:2014-07-12 13:13:29
【问题描述】:
我知道有很多关于此的问题和答案,但没有一个适合我
尝试通过后面代码中的函数填充此下拉列表:
此下拉列表用于图像名称,当用户选择一个并单击网格视图中的“更新”链接按钮时,我需要在图像名称中插入一个后缀(用于路径), 因此,如果用户从列表中选择图像名称,则更新按钮实际上会更新 fileName + 在路径开头插入,所以它将是
../images/gary.jpg
加里这个名字。
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);
}
}
“ddlImages”为空,如何找到他?
设法找到这样的下拉列表:
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 中我有一个“UpdateCommand”,它接受参数并尝试更新数据库。问题 - 它需要采用 dropDownList 选择的值,而是采用:“”我如何更改它以采用用户在 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" />
下拉列表选择值。我怎样才能做到这一点?
【问题讨论】:
-
您正在尝试获取 RowDataBoud 事件中的下拉列表。但是Dropdown列表在EditItemTemplate中,所以只能在行的编辑模式下获取Dropdown。
-
@Kiran Hegde,设法做到了。现在我面临另一个问题,在 aspx 中我有一个“UpdateCommand”,它接受参数并尝试更新数据库。问题 - 它需要采用 dropDownList 选择的值,而是采用:“
” 我如何更改它以采用用户在 dropDownList 中选择的值 -
能否用updatecommand显示数据源的aspx源代码?
-
@Kiran Hegde,更新了问题。
-
如果它有效,你能检查答案吗?