我在尝试使用参数CommandName =“x”触发GridView中的按钮时遇到问题,我尝试在GridView1_RowCommand事件中触及我的“If”,但我只是因为某些原因而无法帮助我我很感激。
这是我的.aspx部分
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
EnableModelValidation="True" ForeColor="#333333" GridLines="None"
Height="193px" Width="968px" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="SOURCE1" onrowcommand="GridView1_RowCommand">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button Text = "Seleccionar" runat="server" CommandName="X" CommandArgument='<%# Container.DataItemIndex %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="IDEmpresa" HeaderText="IDEmpresa"
SortExpression="IDEmpresa" />
</Columns>
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
这是我的C#代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "X")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
Label1.Text = "WOW It reached out";
}
}
我按照ASP.net页面的说明进行操作,并且我对.net很新(我不知道UpdatePanel是否与它有关)
答案 0 :(得分:1)
快速测试,你提供的代码是有效的,但我必须连接我自己的数据源。
您在这里缺少的是Label1在UpdatePanel之外,并且不会根据UpdatePanel中的本地化回发进行刷新。
使用GridViews和UpdatePanels / Buttons时要小心谨慎。确保在Page_Load期间没有手动绑定/重新绑定,如果有代码,则在if(!IsPostBack) { }
语句中执行此操作。