【问题标题】:asp.net VB Need to set default value for Listview or SQL Insertasp.net VB 需要为 Listview 或 SQL Insert 设置默认值
【发布时间】:2016-10-14 17:08:24
【问题描述】:

希望我能说清楚。我有:

带有 sql 数据源的列表视图 单独的下拉列表在选择某些东西时,会过滤ListView / sqldatasoure

我想要做的是使用下拉列表中的值来设置插入记录的默认值。我看到两个地方,要么是列表视图项插入上的文本框,要么是 sqldatasource 插入参数上的默认值。

我已经从下拉事件中尝试了一个会话变量,但是如果我设置了文本框,它会在列表视图刷新后被擦除。似乎没有办法在 sqldatasource 上设置 insertparamater。

我正在尝试找到要设置的正确事件和属性。当我直接引用文本框或将 findcontrol 与未设置的对象或块 var 一起使用时,到目前为止我尝试过的所有操作都会出错。换句话说,.net 层次结构让我很沮丧。

希望这是有道理的。

谢谢

【问题讨论】:

    标签: asp.net vb.net listview sqldatasource


    【解决方案1】:

    抱歉,如果我误解了,但您不能在下拉列表的 OnSelectedIndexChanged 事件中更新插入参数的 DefaultValue 吗?

    <asp:DropDownList runat="server" id="ddl" OnSelectedIndexChanged="ddl_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
    

    Protected Sub ddl_SelectedIndexChanged(sender As Object, e As EventArgs)
    
          MySqlDataSource.InsertParameters("ParameterName").DefaultValue = ddl.SelectedValue
    
    End Sub
    

    【讨论】:

    • 感谢您的回复。我试过了,但是一个插入错误说它是空的,我认为这是因为我使用下拉列表来过滤 sqldatasource,数据源正在刷新并清除默认值。
    • 对数据源应用过滤器不应修改其插入参数。如果需要,另一种方法可能是将下拉列表的SelectedValue 存储在隐藏字段中。插入时,将插入参数设置为隐藏字段的值。
    • 这是我的第一个想法,但由于某种原因,它是通过 null 来的。我不能使用隐藏字段,因为插入参数实际上是一个可以覆盖默认值的文本框。这只是让我思考。如果文本框为空,默认值不在那里吗?我也可以设置一个会话变量,但我无法确定使用哪个事件来设置默认值,甚至只是那个文本框。
    【解决方案2】:

    桑蒂, 感谢您的回复,它帮助我思考了问题,您在正确的轨道上。我的下拉列表将值存储在会话变量中,然后我检查 ListView 的 ItemInserting 上的文本框,如果它是空白的,则将数据源设置为会话变量。类似的

    Protected Sub ListView1_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewInsertEventArgs) Handles ListView1.ItemInserting
            If txtCategoryInsert.Text = "" Then
                SqlDataSource1.InsertParameters("Category").DefaultValue = Session("CatDefault")
            End If
        End Sub
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2013-04-28
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 2016-11-16
      相关资源
      最近更新 更多