C# GridView行命令未触发
我很难弄清楚为什么RowCommand没有开火。奇怪的是,我在页面上有一个不同的GridView,它的RowCommand命令毫无问题地启动,所以我不知道问题出在哪里 我有以下代码: JavaScriptC# GridView行命令未触发,c#,asp.net,vb.net,gridview,C#,Asp.net,Vb.net,Gridview,我很难弄清楚为什么RowCommand没有开火。奇怪的是,我在页面上有一个不同的GridView,它的RowCommand命令毫无问题地启动,所以我不知道问题出在哪里 我有以下代码: JavaScript function displayPayees() { $('#payeeList').css("display", "block"); $('#payeeList').dialog({ modal: true, d
function displayPayees() {
$('#payeeList').css("display", "block");
$('#payeeList').dialog({
modal: true,
draggable: false,
resizable: false,
maxHeight: 600,
width: 800,
position: { my: "center top", at: "center top+15%", of: window }
});
}
.aspx页面
更新:
我注意到,将GridView移出其包含的div
会导致row命令正确启动
我使用将GridView放入一个对话框中,通过单击按钮显示。我在包含的div
上有display:none
,这样网格视图在按钮单击之前是不可见的,我认为这可能是我的问题的根源。我在这里更新代码以反映这一点
我如何隐藏
div
直到按钮单击,而不阻止row命令正确触发?首先,您应该在项目模板中将命令名指定给按钮,如下所示:
<ItemTemplate>
<asp:Button ID="Btn1" CssClass="SelectRow" CommandName="Sign" runat="server"
CausesValidation="false"
CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
Text="" />
</ItemTemplate>
首先,应将命令名分配给项模板中的按钮,如下所示:
<ItemTemplate>
<asp:Button ID="Btn1" CssClass="SelectRow" CommandName="Sign" runat="server"
CausesValidation="false"
CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"
Text="" />
</ItemTemplate>
将它从
按钮
更改为链接按钮
,它就会工作
<ItemTemplate>
<asp:LinkButton ID="btnSelectPayee" runat="server" CommandName="SelectPayee"
CommandArgument='<%# Eval("TaxID") %>' >Select</asp:LinkButton>
</ItemTemplate>
将它从按钮更改为链接按钮
,它就会工作
<ItemTemplate>
<asp:LinkButton ID="btnSelectPayee" runat="server" CommandName="SelectPayee"
CommandArgument='<%# Eval("TaxID") %>' >Select</asp:LinkButton>
</ItemTemplate>
您的页面中是否有enableventvalidation=“true”
?@AfnanAhmad-我的代码中根本没有明确设置enableventvalidation
。我已经尝试将其设置为true
和false
,但结果没有任何变化。让我感到奇怪的是,我在该页面上有另一个GridView,可以正常工作。据我所知,除了名称(当然)和另一个GridView使用
而不是常规按钮之外,所有代码都是相同的。我偶尔会遇到这种情况。一旦我用尽一切,我删除了网格并重新制作。这就解决了问题。不过我不知道为什么。另外,为了好玩,设置CommandArgument=“test”
。如果您的某个项目为空,这应该无关紧要,但您永远不会知道。您的页面中是否有enableventvalidation=“true”
?@AfnanAhmad-我的代码中根本没有显式设置enableventvalidation
。我已经尝试将其设置为true
和false
,但结果没有任何变化。让我感到奇怪的是,我在该页面上有另一个GridView,可以正常工作。据我所知,除了名称(当然)和另一个GridView使用
而不是常规按钮之外,所有代码都是相同的。我偶尔会遇到这种情况。一旦我用尽一切,我删除了网格并重新制作。这就解决了问题。不过我不知道为什么。另外,为了好玩,设置CommandArgument=“test”
。如果您的某个项目为空,这应该无关紧要,但您永远不会知道。这并没有解决我的问题。RowCommand仍然没有启动。我还更新了问题。我发现,从其父级div
中删除GridView可以使row命令正确启动。我猜我的问题源于这样一个事实:在单击按钮之前,我一直在隐藏GridView。我只是不知道如何修复它。这并没有解决我的问题。RowCommand仍然没有启动。我还更新了问题。我发现,从其父级div
中删除GridView可以使row命令正确启动。我猜我的问题源于这样一个事实:在单击按钮之前,我一直在隐藏GridView。我只是不知道如何修复它。
<ItemTemplate>
<asp:LinkButton ID="btnSelectPayee" runat="server" CommandName="SelectPayee"
CommandArgument='<%# Eval("TaxID") %>' >Select</asp:LinkButton>
</ItemTemplate>