更新面板无法正常工作

时间:2014-05-03 07:12:46

标签: c# asp.net updatepanel

我将Gridview包含在“更新”面板中并将触发器设置为搜索按钮,但它无法正常工作, 当我将文本放入文本框并单击搜索然后gridview显示相关结果时,没关系,但它应该在单击Gridview的SELECT按钮时将列的文本加载到文本框中,该按钮在放置更新面板之前工作但是现在不要。它既不会将文本加载到文本框中,也不会在单击“搜索”按钮后再次加载。

CODE:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="Click" />
                </Triggers>
                <ContentTemplate>
                    <asp:GridView ID="gridViewComplaints" AutoGenerateSelectButton="true" runat="server" CssClass="mGrid" OnSelectedIndexChanged="gridViewComplaints_SelectedIndexChanged">
              <EmptyDataRowStyle BorderStyle="None" ForeColor="Red" BorderWidth="0px" />
               <EmptyDataTemplate>
                  No Data Found for this Input. Try Again.
               </EmptyDataTemplate> 
             <SelectedRowStyle CssClass="selected-row" BackColor="YellowGreen" ForeColor="white" />
             </asp:GridView>
                </ContentTemplate>
            </asp:UpdatePanel>

 protected void gridViewComplaints_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = gridViewComplaints.SelectedRow;
        txtComplaintSubject.Text = row.Cells[2].Text;
        HiddenFieldComplaintID.Value = row.Cells[1].Text;
        int cid = Convert.ToInt32(HiddenFieldComplaintID.Value);
        Response.Write(cid.ToString());
        gridViewComplaints.Visible = false;

    }

1 个答案:

答案 0 :(得分:0)

这就是它对我有用的方式。如果您可以尝试此代码:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:GridView ID="GridView1" class="gridview" OnRowCommand="EditGridData" runat="server"
            AutoGenerateColumns="False" CellPadding="4" GridLines="None" AllowPaging="True"
            OnPageIndexChanging="GrdState_PageIndexChanging" PageSize="20" EmptyDataText="Record is Not Available"
            Width="93%">
            <Columns>
                <asp:TemplateField HeaderText="Edit">
                    <ItemTemplate>
                        <asp:LinkButton ID="BtnEdit" runat="server" CausesValidation="false" class="black skin_colour round_all"
                            CommandArgument='<%# Eval("Country_ID")%>' CommandName="Edit1" ForeColor="#6699FF"
                            Font-Underline="True"> <span>Edit</span></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Delete">
                    <ItemTemplate>
                        <asp:LinkButton ID="BtnDelete" OnClientClick="return confirm('Are you sure want to delete?');"
                            CausesValidation="false" class="black skin_colour round_all " CommandArgument='<%# Eval("Country_ID")%>'
                            CommandName="Delete1" runat="server" ForeColor="#6699FF" Font-Underline="True"><span>Delete</span></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="View">
                    <ItemTemplate>
                        <asp:LinkButton ID="LBtnView" CausesValidation="false" class="black skin_colour round_all "
                            CommandArgument='<%# Eval("Country_ID")%>' CommandName="View1" runat="server"
                            ForeColor="#6699FF" Font-Underline="True"><span>View</span></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Country_Name" HeaderText="Country" />
                <asp:BoundField DataField="Description" Visible="false" HeaderText="Description" />
                <asp:TemplateField HeaderText="Description">
                    <ItemTemplate>
                        <div class="DisplayDiv">
                            <asp:Label ID="Label1" runat="server" CssClass="DisplayDesc" Text='<%# Eval("Description") %>'></asp:Label>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:BoundField DataField="CreationDate" HeaderText="Creation Date" DataFormatString="{0:dd/MM/yy}" />
            </Columns>
        </asp:GridView>
    </ContentTemplate>
</asp:UpdatePanel>

背后的代码(如果您可以看到我在网格视图中使用命令名称作为链接按钮):

public void EditGridData(object sender, GridViewCommandEventArgs e)
    {
        int i = Convert.ToInt32(e.CommandArgument);
        Session["Country_ID"] = i;

        if (e.CommandName == "Edit1")
        {
            SortedList sl = new SortedList();
            sl.Add("@mode", "GetRows1");
            sl.Add("@Country_ID", i);
            SqlDataReader dr = emp.GetDataReaderSP("CountryMaster1", sl);
            while (dr.Read())
            {
                txtCountry.Text = dr["Country_Name"].ToString();
                txtDesc.Text = dr["Description"].ToString();
                ViewState["Country_Name"] = dr["Country_Name"].ToString();
                BtnSubmit.Visible = true;
                BtnSubmit.Text = "Update";
            }
        }

        if (e.CommandName == "View1")
        {
            SortedList sl = new SortedList();
            sl.Add("@mode", "GetRows1");
            sl.Add("@Country_ID", i);
            SqlDataReader dr = emp.GetDataReaderSP("CountryMaster1", sl);
            while (dr.Read())
            {
                txtCountry.Text = dr["Country_Name"].ToString();
                txtDesc.Text = dr["Description"].ToString();
                ViewState["Country_Name"] = dr["Country_Name"].ToString();

                BtnReset.Visible = true;
                BtnSubmit.Visible = false;
            }
        }


        if (e.CommandName == "Delete1")
        {
            SortedList sl = new SortedList();
            sl.Add("@mode", "DeleteData");
            sl.Add("@Country_ID", i);

            emp.ExecuteNonQuerySP("CountryMaster1", sl);
            Label1.Visible = true;
            Label1.Text = "Record Deleted Successfully…";
            BindGrid();
        }

    }

希望这有帮助。