2013-08-30 46 views
2

获得价值我有了这里面一个DataList:需要从动态命名选择框

<select id="ddl<%# Eval("ID") %>" name="ddl<%# Eval("ID") %>"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
       <option>4</option> 
       <option>5</option> 
       <option>6</option> 
       <option>7</option> 
       <option>8</option> 
       <option>9</option> 
       <option>10</option> 
       <option>11</option> 
       <option>12</option> 
       <option>13</option> 
       <option>14</option> 
       <option>15</option> 
       <option>16</option> 
       <option>17</option> 
       <option>18</option> 
       <option>19</option> 
       <option>20</option> 
      </select> 

因为动态命名的投入,我不能添加RUNAT服务器标签。

在我的代码后面的按钮事件,我想获得选项文本;我正在使用:

string itemquantity = Request.Form.GetValues("ddl" + itemid).ToString(); 

返回对象引用未找到。

任何想法如何处理这个问题?

+0

也许我可以遍历所有的选择框,并拿出一个名称和值的列表?仍然不知道,必须有一个更简单的方法,我甚至不知道如何做到这一点,没有他们.net控制。 – prospector

回答

0

DataList控件使用OnItemDataBound事件,你可以使用FindControl方法找到这个选择..

但你应该添加RUNAT =“服务器”标签或使用下拉列表控制。

+0

我不能使用runat服务器标签,因为它没有一个可靠的id,并且不能使用databound事件,因为它来自按钮事件后面的代码。 – prospector

0

创建一个隐藏字段。 使用jquery,对任何dropdownlist上的每个更改都创建一个事件,该事件从每个下拉列表中读取值并将其作为列表存储在隐藏字段中,例如。逗号分隔。