2010-09-14 117 views
0

我已经使用asp.net GridView完成了此操作。但有没有人有任何关于如何将行数据从SharePoint Dataview行中的asp.net按钮传递到内联C#函数的示例?SharePoint - 将DataView行参数从ASP.net传递给C#函数按钮

按钮重复如下:

<asp:Button runat="server" Text="Delete" id="Delete{@ID}" OnClick="DeleteDoc()"/> 

我的功能看起来是这样的:

void DeleteDoc(object sender, EventArgs e) { } 

}

我尝试添加另一个参数,但得到:

无过载'DeleteDoc'匹配委托'System.EventHandler'

回答

3

尝试将您的方法访问修饰符更改为保护并将OnClick =“DeleteDoc()”更改为OnClick =“DeleteDoc”。

此外,我没有设法使它与id =“Delete {@ID}”一起工作,所以尽量不要这样做。

这个工作对我的测试案例

<asp:Button runat="server" Text="Delete" 
      OnClick="DeleteDoc" 
      CommandArgument='<%# Eval("ID")%>'/> 

protected void DeleteDoc(object sender, EventArgs e) 
     { 
      Button b = sender as Button;    
      YourDeleteDocumentHelperMethod(b.CommandArgument); 
     } 
+0

我敢肯定,你的答案是正确的,正确的。我编码它,但现在意识到,由于某种原因,我的onclick处理程序永远不会被调用。我正在通过共享点设计师开发这个功能,所以非常难以应付麻烦。标记中的该按钮重复每一行。和我的处理程序是这个void DeleteDoc(对象发件人,EventArgs e){sendmail(“DeleteDoc”);按钮b =发件人为按钮;字符串FileRef = b.CommandArgument;如果将按钮放置在DataView外部,它就可以工作。 – o365spo 2010-09-14 21:14:38

+0

您是在SharePoint DataView还是asp.net GridView中测试?如果我删除{@ID},我会按预期收到重复的控制错误。有人建议我不能将一个按钮添加到DataView行,并且我必须使用表单Action。在Dataview Custom Row操作中找到非常少的信息。如上所述,但是当我将它从Dataview中拉出时,按钮就起作用了。再次感谢。 – o365spo 2010-09-15 10:37:19

+0

我用普通的asp转发器。我不知道你在使用SP Designer。为了测试我做了简单的Web部分,加载用户控制。我所有的代码都是用户控制的。你能否认可包含DataView的后置代码? – 2010-09-15 12:12:52