首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在网格视图中绑定HiddenField

在网格视图中绑定HiddenField
EN

Stack Overflow用户
提问于 2013-11-25 19:32:53
回答 2查看 3.3K关注 0票数 1

我想绑定一个Hidden Field,因为我想将代码后面的值传递给asp:Parameter Name="HOME_TEAM_COACH_ID" Type="Int32"

我的asp:

代码语言:javascript
复制
<asp:FormView ID="FormView1" runat="server" OnItemUpdated="FormView1_ItemUpdating" >
    <EditItemTemplate>           
        HOME_TEAM:
        <asp:DropDownList ID="DropDownListHometeam" runat="server"
            DataSourceID="SqlDataGetTeams"
            DataTextField="NAME" DataValueField="ID" SelectedValue='<%# Bind("HOME_TEAM_ID") %>'>
        </asp:DropDownList>  
        <asp:HiddenField runat="server" ID="testLabel" Value='<%# Bind("HOME_TEAM_COACH_ID") %>' /> 
    </EditItemTemplate>

后面的c#是:

代码语言:javascript
复制
protected void FormView1_ItemUpdating(object sender, FormViewUpdatedEventArgs e)
{
    if (FormView1.CurrentMode == FormViewMode.Edit)
    {
        DropDownList HomeTeamId = FormView1.FindControl("DropDownListHometeam") as DropDownList;            
        string team = string.Format("{0}", HomeTeamId.Text);
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BasketballConnectionString1"].ToString());
        conn.Open();
        string queryHome = "SELECT dbo.COACH.ID, dbo.COACH.SURENAME FROM dbo.COACH INNER JOIN dbo.GAMES ON dbo.COACH.TEAM_ID = dbo.GAMES.HOME_TEAM_ID WHERE (dbo.GAMES.HOME_TEAM_ID =" + team + ")";
        SqlCommand cmd = new SqlCommand(queryHome, conn); 


        var Home_Coach_Id = cmd.ExecuteScalar().ToString();
        HiddenField HomeCoachIdLabel = FormView1.FindControl("testLabel") as HiddenField;
        HomeCoachIdLabel.Value = Convert.ToString(Home_Coach_Id);
        conn.Close();

我需要关于最后四行的帮助,在这些行中,我希望传递Home_Coach_Id值来绑定asp:HiddenField ID="testLabel" Value='<%# Bind("HOME_TEAM_COACH_ID") %>'

单击update时,它不会更改数据库中的值。(调试时,在最后一行中,它给出了正确的HomeCoachIdLabel.Value。)有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-26 18:28:29

问题在于,它需要的是方法预存器,而不是一个更新的方法。

代码语言:javascript
复制
   asp:FormView ID="FormView1" runat="server" OnPreRender="FormView1_OnPreRender" >

同时也在c#中

代码语言:javascript
复制
    protected void FormView1_OnPreRender(object sender, FormViewUpdatedEventArgs e)

{

当我把它放在页面加载{ }中时,它也能工作。下一步是使插入事件.

票数 0
EN

Stack Overflow用户

发布于 2013-11-25 19:47:33

您不需要显式设置HiddenFieldValue属性,因为它是由标记中的<%# Bind("HOME_TEAM_COACH_ID") %>完成的。

我认为您的问题是,您没有将查询中的HOME_TEAM_COACH_ID返回到SELECT语句中的数据库:

代码语言:javascript
复制
SELECT dbo.COACH.ID, dbo.COACH.SURENAME FROM dbo.COACH 
    INNER JOIN dbo.GAMES ON dbo.COACH.TEAM_ID = dbo.GAMES.HOME_TEAM_ID 
    WHERE (dbo.GAMES.HOME_TEAM_ID =" + team + ")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20201631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档