gpt4 book ai didi

c# - 如何根据位于 updatePanel 中的 DataGrid 中所做的行选择来更新控件 [DataGrid、TextBoxes 和 Label]?

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:36 27 4
gpt4 key购买 nike

我有一个网格 [Grid1],它在单击按钮 [search] 时构建其数据行,我设法通过将其放置在 UpdatePanel 中对其进行 Ajax 化,并且工作正常。在 Ajaxifying Grid 1 之前,单击 Grid 1 中的一行时,另一个网格 [Grid2] 和一些其他控件 [Text and Labels] 用于填充/更新。

Grid2 和其他控件用于在 Grid 1 的 OnItemCommand 事件上填充/更新。它是 OnItemCommand 中的代码,将相关数据绑定(bind)到 Grid2 和其他控件。

在我将 Grid 1 放入更新面板后,它们停止了更新。如果我将 Grid2 和其他控件放在同一个更新面板中,它会工作正常,但页面的设计方式使我无法将这些控件与第一个 Grid 放在同一个 UpdatePanel 中,我也不打算使用另一个更新面板。

我希望我说得有道理。我是 .Net 的新手,所以请原谅。请在下面找到代码。

 <asp:ScriptManager EnablePartialRendering="true" ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers ="True">
<ContentTemplate>
<asp:DataGrid ID="grdJobs" runat="server" AllowPaging="true"
AlternatingItemStyle-CssClass="gridAltItemStyle"
AutoGenerateColumns="False" CellPadding="0"
DataKeyField="code"
CssClass="datagridBox"
GridLines="horizontal"
PagerStyle-Mode="NumericPages"
HeaderStyle-CssClass="gridHeaderStyle"
ItemStyle-CssClass="gridItemStyle"
PagerStyle-CssClass="gridPagerStyle"
Width="445px" OnPageIndexChanged="grdJobs_PageIndexChanged" OnItemCreated="grdJobs_ItemCreated" OnItemCommand="grdJobs_ItemCommand" OnItemDataBound="grdJobs_ItemDataBound">
<Columns>
<asp:BoundColumn DataField="J_ID" HeaderText="Job"></asp:BoundColumn>
<asp:BoundColumn DataField="Contract" HeaderText="Contract" ReadOnly="True"></asp:BoundColumn>
<asp:BoundColumn DataField="J_Fault_Line1" HeaderText="Fault" ReadOnly="True"></asp:BoundColumn>
<asp:BoundColumn DataField="j_p_id" HeaderText="Fault" Visible="false" ></asp:BoundColumn>
<asp:ButtonColumn Text="<img src=images/addFeedback.gif style=border: 0px; alt=Add Feedback>" ButtonType="LinkButton" HeaderText="Add" CommandName="Load" ItemStyle-cssClass="Col_9_Item_2"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
<asp:ImageButton ID="cmdLkp" ImageUrl="Images/search.gif" runat="server" OnClick="cmdLkp_Click" />

</ContentTemplate>
</asp:UpdatePanel>

后面的代码停止工作

protected void grdJobs_ItemCommand(object source, DataGridCommandEventArgs e)
{

if (e.CommandName == "Load")
{
functionToBindDataToGrid2();
functionToBindDataToOtherControls();
}
}

protected void grdJobs_ItemDataBound(object sender, DataGridItemEventArgs e)
{
e.Item.Attributes.Add("onclick", "javascript:__doPostBack('grdJobs$ctl" + ((Convert.ToInt32(e.Item.ItemIndex + 3).ToString("00"))) + "$ctl00','')");
}

最佳答案

在 UpdatePanel 的属性中,将更新模式设置为“Conditional”并将 ChildrenAsTriggers 设置为“true”。

另一种选择是将按钮移到更新面板内,这样您就不必再使用触发器了。

关于c# - 如何根据位于 updatePanel 中的 DataGrid 中所做的行选择来更新控件 [DataGrid、TextBoxes 和 Label]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com