前台
<asp:Repeater ID="book" Runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center" width="40" bgColor="#ffffff" height="15">技能</td>
<td bgColor="#ffffff" height="15"><%#DataBinder.Eval(Container,"DataItem.d1")%></td>
<TD width="53" bgColor="#ffffff" height="15">
<select id="S<%#DataBinder.Eval(Container,"DataItem.id")%>" runat="server" style="WIDTH: 100%; CLIP: rect(1px 38px 19px 1px); HEIGHT: 100%" name="select">
<OPTION value="" selected></OPTION>
<OPTION value="√">√</OPTION>
<OPTION value="○">○</OPTION>
<OPTION value="×">×</OPTION>
</select></select>
</TD>
</tr>
</ItemTemplate>
</asp:Repeater>后台提交表格的时候想要得到select的值传到数据库中
HtmlSelect tempselect;
tempselect = (HtmlSelect)this.book.FindControl(select的id值);
sql="update table set d2='"+tempselect.Value+"' where id='"+id+"'";
提示错误:未将对象引用设置到对象的实例 tempselect.Value好像没得到值
怎么才能正确的取得select的值
<asp:Repeater ID="book" Runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center" width="40" bgColor="#ffffff" height="15">技能</td>
<td bgColor="#ffffff" height="15"><%#DataBinder.Eval(Container,"DataItem.d1")%></td>
<TD width="53" bgColor="#ffffff" height="15">
<select id="S<%#DataBinder.Eval(Container,"DataItem.id")%>" runat="server" style="WIDTH: 100%; CLIP: rect(1px 38px 19px 1px); HEIGHT: 100%" name="select">
<OPTION value="" selected></OPTION>
<OPTION value="√">√</OPTION>
<OPTION value="○">○</OPTION>
<OPTION value="×">×</OPTION>
</select></select>
</TD>
</tr>
</ItemTemplate>
</asp:Repeater>后台提交表格的时候想要得到select的值传到数据库中
HtmlSelect tempselect;
tempselect = (HtmlSelect)this.book.FindControl(select的id值);
sql="update table set d2='"+tempselect.Value+"' where id='"+id+"'";
提示错误:未将对象引用设置到对象的实例 tempselect.Value好像没得到值
怎么才能正确的取得select的值
你只能在item 绑定事件里去找
所以我又换成dropdownlist ,结果页面显示的不是下拉框,而是直接把所有的select的每个值都写成一行,显示出来了。但这次的runat=server却没有丢失。
很怪。
<TABLE TABLE1>
<tr>
<td>
<INPUT TXT1>
<table TABLE2><tr><TD><INPUT TXT2></TD></tr></table>
</TD>
</TR>
</TABLE>
如果在TABLE1单元中找,只能找到TXT1和TABLE2,要想找到TXT2,你必须在TABLE2的单元个中找
tempselect = (HtmlSelect)this.book.FindControl(select的id值);
我这样写难道有错了?
而且换成dropdownlist的时候,显示的效果都不是下拉框。
我郁闷死了,是不是我把repeater换一下会好些?
看看有没有table这样的,
有的话,table 中还有control的
但是我查代码的结果应该是9个才对。
而且:
string tempd ="";
for(int i =0;i<this.book.Controls.Count;i++)
{
tempd = tempd +"|"+this.book.Controls[i].ID.ToString();
}
this.Response.Write(this.book.Controls.Count+"|"+tempd);提示:未将对象引用设置到对象的实例
这个控件是个容器,
你的select 在里面,
例如
this.book.controls(0).controls(0)