查找网格视图控件控制 [英] Find control in grid view control

查看:149
本文介绍了查找网格视图控件控制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道有很多的问题和放大器;这个答案,但他们不为我的作品

试图通过函数后面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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆