我将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;
}
答案 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();
}
}
希望这有帮助。