1

ドロップダウンリストとテキストボックスを持つ単純なデータリストがあります。

ドロップダウンリストの選択されたインデックスが変更されたら、そのリストボックス項目のテキストボックス (つまり、その特定の行のテキストボックス) に値をロードしたいと思います。

<ItemTemplate>
    <asp:DropDownList runat="server" 
        ID="ddlCategory" AutoPostBack="true"
        DataTextField="category"
        DataValueField="category_code" 
        OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" />                      
    <br />
    Code<asp:TextBox 
        runat="server" 
        ID="txtOutputCode" 
        Text='<%# Bind("output_code") %>' />
</ItemTemplate>

どうすればいいですか?

私が直面している課題は、更新する対応するテキストボックスを見つける方法です。

たとえば、ボタンの場合、コマンド名とコマンド引数を渡します。次に、グリッドビューまたはデータリストでイベントを処理して、対応するテキスト ボックスを見つけてテキストを更新します。ドロップダウンリストの選択されたインデックスが変更された場合、何ができますか?

4

3 に答える 3

3

これでうまくいくはずです。これを試して...

protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
{
   var ddlList= (DropDownList)sender;
   var row = (GridViewRow)ddlList.NamingContainer;
   //get the Id of the row
   var Id = Convert.ToInt32(((Label)row.FindControl("IdColumn")).Text);
}
于 2012-02-23T08:00:55.173 に答える
1

あなたがすべきことは次のとおりです。

private SomeObject o = new SomeObject();

private void o_SomeEvent(...) {
}

public TheConstructor() {
    this.o.SomeEvent += new SomeHandler(o_SomeEvent);
}

つまり、新しいドロップダウンリストを作成し、そのイベントをitemdataboundのグリッドビューにあるドロップダウンリストに添付する必要があります

于 2012-02-23T08:01:37.323 に答える
0
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList ddlcouse = (DropDownList)sender;
        DataListItem Grow = (DataListItem)ddlcouse.NamingContainer;
        foreach (DataListItem dst in dstAllSite.Items)
        {
            DropDownList ddl_AccountInfo = (DropDownList)dst.FindControl("ddlAccountInfo");
            if (ddlcouse.SelectedIndex > 0)
            {
                BindAccountDDL(ddl_AccountInfo, ddlcouse.SelectedValue.Trim());
                ddlcouse.Focus();
            }
        }
    }

    private void BindAccountDDL(DropDownList ddlAccountInfo, string ddlcouse)
    {
        csPL.ddlcouse = ddlcouse;
        DataTable dt = csBL.BindAccountInfoDDL(csPL);
        if (dt.Rows.Count > 0)
        {
            ddlAccountInfo.DataSource = dt;
            ddlAccountInfo.DataTextField = "BankName";
            ddlAccountInfo.DataValueField = "BankId";
            ddlAccountInfo.DataBind();
            ddlAccountInfo.Items.Insert(0, "Select");
        }
    }
于 2019-05-23T07:26:48.493 に答える