asp.net - listview 插入项模板中的下拉列表将 null 传递给数据库

标签 asp.net

目前我有一个下拉列表,它有自己的 sqldatasource 填充下拉列表。
ddl 位于 ListView 中,该 ListView 也位于 sqldatasource 中,插入项模板。
但是,当我们单击插入时,传递给 dbase 的值是空值。

<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>
                            &nbsp;</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 插入参数中同时使用 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>

然而,使用时这两个值都不会给我一个实际值而不是空值。这是普遍现象吗?

更新:我最终使用 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);

}

关于asp.net - listview 插入项模板中的下拉列表将 null 传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081639/

相关文章:

asp.net - ASP.NET 默认情况下是否利用多核处理器?

c# - 如何在 jquery 变量中获取业务类属性值

没有 javascript 的 ASP.NET 网络表单

c# - 在javascript中绑定(bind)选择列表,特殊字符转义

c# - C# .NET 中 FileStream 的替代方案

asp.net - 从 Azure 连接到 HTTPS Web 服务

javascript - 当管理员单击菜单时,如何在管理仪表板的颜色区域中激活背景颜色,它会进入默认设置的背景颜色

c# - 如何自动化 ASP.NET 网站停机消息

c# - 如何在 asp.net mvc 中更改网格中的日期时间格式

asp.net - 缓存用户控件时可以使用多个 VaryByCustom 参数吗?