SelectedValue раскрывающегося списка (UserControl) не выделяется внутри GridView в asp.net - PullRequest
0 голосов
/ 11 августа 2011

Я создал Usercontrol (выпадающий) и использовал его внутри EditTemplate GridView.

<EditItemTemplate>
    <eluc:AddrType ID="ucIssuingAuthorityEdit" runat="server" AddressType="139" AddressList='<%# PhoenixRegistersAddress.ListAddress("139") %>'
     AppendDataBoundItems="true" CssClass="dropdown_mandatory" SelectedAddress='<%# DataBinder.Eval(Container,"DataItem.FLDISSUINGAUTHORITY") %>' />
 </EditItemTemplate>

SelectedAddress - свойство, которое будет устанавливать SelectedValue раскрывающегося списка. Если я использую тот же usercontrol внутри обычной страницы aspx, он выбирается. Но внутри GridView не выбирается.

Код в пользовательском контроле для выбора:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ddlAddressType.DataSource = PhoenixRegistersAddress.ListAddress(addresstype);
        ddlAddressType.DataBind();

        foreach (ListItem item in ddlAddressType.Items)
        {
            if (item.Value == _selectedValue.ToString())
            {
                item.Selected = true;
                break;
            }   
        }           

    }
}

Здесь свойство SelectedAddress

public string SelectedAddress
{
    get
    {
        return ddlAddressType.SelectedValue;
    }
    set
    {
        if (value.Trim().Equals(""))
            return;
        _selectedValue = Int32.Parse(value);
        foreach (ListItem item in ddlAddressType.Items)
        {
            if (item.Value == _selectedValue.ToString())
            {
                item.Selected = true;
                break;
            }
        }           

    }
}

Может ли кто-нибудь подсказать мне, почему это так.

Заранее спасибо ..

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Наконец-то я получил решение и предоставил здесь то же самое для других.

Внутри метода RowDataBound () GridView я получаю DataRowView этого DataItem и устанавливаю SelectedValue UserControl в DataField.

Вот код ..

protected void gv_RowDataBound(Object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {            
        UserControlXXX ucXXX = (UserControlXXX)e.Row.FindControl("ucXXXEdit");
        DataRowView drv = (DataRowView)e.Row.DataItem;
        if (ucXXX != null) ucXXX.SelectedXXX = drv["FLDXXXCODE"].ToString();
    }
}
0 голосов
/ 11 августа 2011

есть ли у вас выбранные адреса, ссылающиеся на источник данных?

, затем получите ddlist для ссылки на второй источник данных, сообщающий ему, что вы хотите, чтобы он отображал, в этом случае я хочу отобразить все.Затем в этом источнике данных вам нужно изменить выбранные параметры на выпадающий список для выбранных адресов

, вот как я делал с vb, не слишком уверен, как это будет работать с C, я боюсь, но, по крайней мере, у вас естьотправная точка:)

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:IWSRiskAssessmentConnectionString3 %>"
        SelectCommand="SELECT * FROM [tblCompany] WHERE ([compDataID] LIKE '%' + @compDataID + '%')">
        <SelectParameters>
            <asp:ControlParameter ControlID="CompanyDD" DefaultValue="%" Name="compDataID" PropertyName="SelectedValue"
                Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>

если вам нужна дополнительная помощь, дайте мне знать, я посмотрю, что я могу сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...