zoukankan      html  css  js  c++  java
  • GridView放在UpdatePanle里面模板列取值!

       今天用了一下UpdatePanle,遇到一个问题,先记录下来。GridView放在UpdatePanle里面模板列取不到值!
     <asp:ScriptManager ID="ScriptManager1" runat="server">
        
    </asp:ScriptManager>
        
    <table align=center width=800>
            
    <tr><td>
                
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" Width="154px" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                   
    <asp:ListItem Value="0"></asp:ListItem>
                    
    <asp:ListItem Value="1">ID大于15</asp:ListItem>
                    
    <asp:ListItem Value="2">id小于15</asp:ListItem>
                
    </asp:DropDownList></td>
                
    <td>id值为<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
                
    </tr>
                
    </table>
        
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
    <ContentTemplate>
            
    <table align=center width=800>
            
            
    <tr><td>
                
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
                    DataSourceID
    ="SqlDataSource1" Width="800" CssClass="GridViewCss"  OnRowCommand="GridView1_RowCommand">
                    
    <Columns>
                        
    <asp:BoundField DataField="UserCode" HeaderText="UserCode" SortExpression="UserCode" />
                        
    <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
                        
    <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                            SortExpression
    ="ID" />
                        
    <asp:BoundField DataField="Birthday" HeaderText="Birthday" SortExpression="Birthday" />
                        
    <asp:BoundField DataField="Sex" HeaderText="Sex" SortExpression="Sex" />
                        
    <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
                        
    <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />
                        
    <asp:TemplateField HeaderText="ID" >
                        
    <ItemTemplate >        
                           
                        
    <asp:Label ID="lblid" runat=server Text='<%# Eval("ID") %>'></asp:Label></ItemTemplate>
                        
    </asp:TemplateField>
                        
    <asp:TemplateField HeaderText="操作">
                                  
                                    
    <itemtemplate>
    <asp:LinkButton id="lbtndll" runat="server"  CommandName="lbtndll"  CommandArgument ="<%# GridView1.Rows.Count %>">取值</asp:LinkButton> 
    </itemtemplate>
                                
    </asp:TemplateField>
                    
    </Columns>
                    
    <HeaderStyle CssClass="GridViewHeader" />
                
    </asp:GridView>
                
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:IwoakOAConnectionString %>"
                    SelectCommand
    ="SELECT [UserCode], [UserName], [ID], [Birthday], [Sex], [Email], [Address] FROM [Iw_User]">
                
    </asp:SqlDataSource>
                
    </td></tr>
            
    </table>
            
    </ContentTemplate>
            
    <Triggers>
                
    <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
              
            
    </Triggers>
        
    </asp:UpdatePanel>

    后台代码:
     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        
    {
            
    string sql = "";
            
    switch (DropDownList1.SelectedValue)
            
    {
                
    case "0":
                    sql 
    = "SELECT [UserCode], [UserName], [ID], [Birthday], [Sex], [Email], [Address] FROM [Iw_User] ";
                    
    break ;
                
    case "1":
                    sql 
    = "SELECT [UserCode], [UserName], [ID], [Birthday], [Sex], [Email], [Address] FROM [Iw_User] where id>15";
                    
    break;
                
    case "2":
                    sql 
    = "SELECT [UserCode], [UserName], [ID], [Birthday], [Sex], [Email], [Address] FROM [Iw_User] where id<15";
                    
    break;
            }
          

            SqlDataSource1.SelectCommand 
    =sql;
            GridView1.DataSourceID 
    = "SqlDataSource1";
            GridView1.DataBind();
        }

       
        
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        
    {
            
    if (e.CommandName == "lbtndll")
            
    {
                
    int index = Convert.ToInt32(e.CommandArgument);
                Label lblid 
    = (Label)this.GridView1.Rows[index].FindControl("lblid");
                TextBox1.Text 
    = lblid.Text;
                
    //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "key", "alert('" + lblid .Text+ "')", true);
            }


          
        }

    将GridView移出UpdatePanle外是完全没有问题的。
    原来取不到值是因为我把TextBox放在了Updatepanle外,谢谢老赵提醒!
  • 相关阅读:
    SDUT 1570 C 旅行(DFS)
    SDUT 1269 走迷宫(BFS)
    求连通分量个数
    Codeforces Round #237 (Div. 2)
    FZU 2150 Fire Game(BFS)
    HDU 2045 不容易系列之(3)—— LELE的RPG难题(递推)
    LeetCode 155. Min Stack
    【ZZ】终于有人把云计算、大数据和人工智能讲明白了!
    学习笔记之Microsoft Office 365
    【ZZ】技能表合集
  • 原文地址:https://www.cnblogs.com/anson/p/549878.html
Copyright © 2011-2022 走看看