ddl_art在模版里边,不能这样直接引用。
而且用数组邦定ddl,直接帮数据源就可以了,不用一项一项的写
应该这样。((DropDownList)(DetailsView1.items[i].findcontrol("ddl_art"))).Datasource=str
而且用数组邦定ddl,直接帮数据源就可以了,不用一项一项的写
应该这样。((DropDownList)(DetailsView1.items[i].findcontrol("ddl_art"))).Datasource=str
我改成这样了
((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataSource=str;
((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataBind();
但是现在第一条语句报索引超出范围。必须为非负值并小于集合大。
我调试时看到STR数组个数为2,每项中也有两个值,应该讲不会有问题,模版里应该如何改?
row[i]表示detailsview的第i行。你不是每行都有ddl吗?
我有点晕了
应该写在detailsview的rowbing之类的函数里边。
我也用了arraylist也还是报那个错。请问rowbind如何用,具体些,谢谢!现在模版里这样的
ItemTemplate>
<asp:DropDownList ID="ddl_art" OnLoad="dropdownlist_bind" AppendDataBoundItems=true AutoPostBack=true runat="server" >
</asp:DropDownList>
</ItemTemplate>cs: {
SqlConnection con1 = dbconn.CreateConnection();
con1.Open();
string sql = "select *, cata_name from product_info,pro_cata where cata_no in (select pro_c_cata from product_info where id='" + id + "') and id='" + id + "'"; SqlCommand com = new SqlCommand(sql, con1);
SqlDataReader srd = com.ExecuteReader();
while (srd.Read())
{
string pro = srd["exto_name"].ToString();
ArrayList array = new ArrayList();
string[] str = pro.TrimEnd('$').Split('$');
int i = str.Length; for (int a = 0; a < i - 1; a++)
{
array.Add(str[a]);
}
((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataSource=array;
((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataBind(); }
srd.Close(); }
<asp:DropDownList ID="ddl_art" AutoPostBack=true DataTextField="exto_name" DataValueField="exto_name" DataSourceID="SqlDataSource1" runat="server" >
</asp:DropDownList>
</ItemTemplate>
用模版列怎么可能就第十行有ddl??2 ((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataSource=array;
((DropDownList)(DetailsView1.Rows[10].FindControl("ddl_art"))).DataBind();应该写在DETAILSVIEW的rowbind里边,而且需要改
我这边没有调试环境,没法给你写代码,你这么rows[10]肯定不对了,艾
Style="z-index: 104; left: 136px; position: absolute; top: 179px" Width="493px" AutoGenerateRows="False" >
<Fields>
<asp:ImageField DataImageUrlField="pro_path" ControlStyle-Height="100px" ItemStyle-Height="100px" DataImageUrlFormatString="up/{0}" HeaderText="物品图片">
<ItemStyle Height="100px" />
</asp:ImageField>
<asp:BoundField DataField="ex_kind" HeaderText="交换方式" SortExpression="ex_kind" />
<asp:BoundField DataField="cata_name" HeaderText="物品类别" SortExpression="pro_c_cata" />
<asp:BoundField DataField="ex_name" HeaderText="物品名称" SortExpression="ex_name" />
<asp:BoundField DataField="pro_intro" HeaderText="物品说明" SortExpression="pro_intro" />
<asp:BoundField DataField="ex_qt" HeaderText="物品数量" SortExpression="ex_qt" />
<asp:BoundField DataField="ex_price" HeaderText="物品估价" SortExpression="ex_price" />
<asp:BoundField DataField="pro_new" HeaderText="新旧程度" SortExpression="pro_new" />
<asp:BoundField DataField="pro_new" HeaderText="使用多久" SortExpression="pro_new" />
<asp:TemplateField HeaderText="欲交换物品" SortExpression="exto_name">
<ItemTemplate>
<asp:DropDownList ID="ddl_art" OnLoad="dropdownlist_bind" AppendDataBoundItems=true AutoPostBack=true runat="server" >
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="release_time" HeaderText="发布有效期" SortExpression="release_time" />
</Fields>
<RowStyle Font-Size="14px" />
</asp:DetailsView>
这个ddl控件是在第十行啊。