查找网格视图控件控制 [英] Find control in grid view control
问题描述
我知道有很多的问题和放大器;这个答案,但他们不为我的作品
试图通过函数后面code填充此下拉列表:
该下拉列表是图片的名称,当用户选择一个,点击在网格视图我需要插入一个后缀为映像名称更新链接按钮(的路径)
因此,如果用户从列表中选择一个图像名称更新按钮,它实际上将更新文件名+插入开头的路径,所以这将是
../图像/ gary.jpg
块引用>有关名称加里。
aspx页面
块引用>< ASP:的TemplateField>
<&EditItemTemplate的GT;
< ASP:DropDownList的ID =ddlImages=服务器>
<项目>
< ASP:ListItem的文本=选择VALUE =/>
< /项目>
< / ASP:DropDownList的>
< / EditItemTemplate中>
...
后面code
块引用>保护无效GridView1_RowDataBound(对象发件人,GridViewRowEventArgs E)
{
如果(e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList的ddlImages =(e.Row.FindControl(ddlImages)作为DropDownList的);
ShowImages(ddlImages); }
}ddlImages是空的,我怎么能找到他吗?
设法找到下拉这样的列表:
如果(e.Row.RowType == DataControlRowType.DataRow)
{
如果((e.Row.RowState&放大器; DataControlRowState.Edit)大于0)
{
DropDownList的ddlImages =(DropDownList的)e.Row.FindControl(ddlImages);
ddlImages.DataSource = GetImages();
ddlImages.DataBind();
}
}现在我面临的另一个问题是,在ASPX我有一个更新命令,它需要的参数,并尝试更新数据库。该problem-它需要采取DROPDOWNLIST选择的价值,而是它需要:我怎样才能改变其采取用户在DropDownList选择值
aspx页面
块引用>更新命令=UPDATE [调查]中的[名] = @name,[区域] = @area,[国家] = @country,[图片] = @picture [综述] = @review WHERE [ID] = @Id> < UpdateParameters>
< ASP:参数名称=名字类型=字符串/>
< ASP:参数名称=区域类型=字符串/>
< ASP:参数名称=国家类型=字符串/>
< ASP:参数名称=图片类型=字符串/>
< ASP:参数名称=检讨类型=字符串/>
< ASP:参数名称=ID类型=的Int32/>
< / UpdateParameters>含义 - 我不得不改变
< ASP:参数名称=图片类型=字符串/>
要下拉列表中选择值。我怎样才能做到这一点?
解决方案关于你提到的有关更新的参数问题,你应该使用ControlParameter而不是一般的参数。试着用以下替换参数定义的下拉列表
code。< ASP:ControlParameter NAME =图片控件ID =ddlImages
属性名=的SelectedValue类型=字符串/>更新
你可以做的是备用的,更改参数重新设置为
< ASP:参数名称=图片类型=字符串/>
添加RowUpdating事件处理程序到GridView
的数据源参数
在程序的RowUpdating命令设定基于所选择的值,如下保护无效GridView1_RowUpdating(对象发件人,GridViewUpdateEventArgs E)
{GridViewRow行= GridView1.Rows [e.RowIndex]
DropDownList的ddlImages = row.FindControl(ddlImages)作为DropDownList的;
SqlDataSource1.UpdateParameters [图片报] =默认值ddlImages.SelectedValue。
}I know there are alot of questions&answers about this but non of them works for me
Trying to populate this Drop Down List via a function in code behind:
This drop down list is for Images names, when a user choose one and clicks the "Update" link button in the Grid View I need to insert a suffix to the image name (for the path), so if the user choose an image name from the list the update button it will actually update the fileName + insert at the beginning the path, so it would be
../images/gary.jpg
for the name gary.
aspx page
<asp:TemplateField> <EditItemTemplate> <asp:DropDownList ID="ddlImages" runat="server"> <Items> <asp:ListItem Text="Choose" Value="" /> </Items> </asp:DropDownList> </EditItemTemplate> ...
code behind
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" is null, how can I find him?
Managed to find the drop down list like that:
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(); } }
Now i am facing another problem, in the aspx i have an "UpdateCommand" which take parameters and try to update the database. The problem- it need to take the dropDownList chosen value but instead it take: "" how can i change it to take the value that the user choose in the dropDownList
aspx page
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>
Meaning- I have to change
<asp:Parameter Name="picture" Type="String" />
to drop down list selected value. How can I achieve that?
解决方案Regarding your question about the update Parameter, you should use the ControlParameter instead of general Parameter. Try replacing the Parameter Definition for the Dropdown list with following code.
<asp:ControlParameter Name="picture" ControlID="ddlImages" PropertyName="SelectedValue" Type="String" />
UPDATE What you can do as alternate is,
Change the parameter back to
<asp:Parameter Name="picture" Type="String" />
Add RowUpdating event handler to the gridview In the RowUpdating command set the data source parameter based on the selected value as below
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; }
这篇关于查找网格视图控件控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!