转发器内的下方控件放置在更新面板中 . 第一个ddl有国家,它的“selectedindexchanged”填补了第二个用于城市的ddl . 填充文本框并选择国家/地区和城市后,单击“添加”按钮,所有控件的值将保留在转发器中 .
当你再添加一些时,总是最后一个的ddlCountry会激活ddl_SelectedIndexChanged() . 如果您尝试更改前一个的ddlCountry值,则不会执行.cs文件中的ddl_SelectedIndexChanged() . 我检查了页面源:final ddlCountry的Id是
cphContent_ddlAddressCountry
并且前一个的ID分配如下:
cphContent_rpAddress_lblCountrym_0
cphContent指的是UpdatePanel,rp指的是Repeater .
我不知道如何在转发器中捕获ddl的Id .
1 回答
可以通过以下几种方式在转发器内捕获控件:
在转发器的ItemDatabound事件(或其他事件之一)中使用FindControl()方法 .
在SelectedIndexChanged()事件中 . sender参数可以是DropDownList的大小写 .
从SelectedIndexChanged()事件中获取城市ddl的代码示例:
您应该记住,使用不同的数据集对转发器进行数据绑定可能会弄乱下拉列表的ID,从而搞乱了SelectedIndexChanged事件的触发,因为此事件依赖于将发布的值与viewstate / controlstate值进行比较两者都附加到控件ID .