当前,我有一个dropdownlist及其自己的sqldatasource填充了dropdownlist。
ddl在listviews内,它也位于sqldatasource上,插入项目模板。
但是,当我们单击插入时,传递给dbase的值为null。
<InsertItemTemplate>
<tr style="">
<td>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert"
Text="Insert" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel"
Text="Clear" />
</td>
<td>
</td>
<td>
<asp:TextBox ID="td_t_idTextBox" runat="server" Text='<%# Bind("td_t_id") %>' Enabled="false" />
</td>
<td>
<asp:DropDownList ID="DropDownList2iit" runat="server" DataSourceID="SqlDataSource30"
DataTextField="document_name" DataValueField="document_id"
SelectedIndex='<%# Bind("td_docid") %>'>
</asp:DropDownList>
</td>
</tr>
</InsertItemTemplate>
我试图在sqldatasource insertparameters中同时使用document_id和td_docid。
<InsertParameters>
<asp:Parameter Name="td_t_id" Type="Int32" />
<asp:Parameter Name="td_docid" Type="Int32" />
<asp:Parameter Name="document_id" Type="Int32" />
</InsertParameters>
但是,使用任何一个值都不会给我除null之外的实际值。这是常见现象吗?
更新:我最终使用oniteminserting在魔术背后做了一些代码
protected void ListView2_OnItemInserting(object sender, EventArgs e)
{
string sv = ((DropDownList)ListView2.InsertItem.FindControl("DropDownList2iit")).SelectedValue;
SqlDataSource31.InsertParameters.Add("document_id", sv);
}
它的工作像它应该的那样。
最佳答案
您可以尝试如下。 (我100%确信,但希望它能起作用)
protected void ListView2_OnItemInserting(object sender, EventArgs e)
{
string sv = ((DropDownList)e.Item.FindControl("DropDownList2iit")).SelectedValue;
SqlDataSource31.InsertParameters.Add("document_id", sv);
}