我想在GridView的标题中有一个DropDownList.在我的代码隐藏中,我似乎无法访问它.这是HeaderTemplate:
<asp:TemplateField SortExpression="EXCEPTION_TYPE">
<HeaderTemplate>
<asp:Label ID="TypeId" runat="server" Text="Type" ></asp:Label>
<asp:DropDownList ID="TypeFilter" runat="server" AutoPostBack="true">
</asp:DropDownList>
</HeaderTemplate>
...
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
这里是代码背后的部分,我试图访问控件'TypeFilter'.
protected void ObjectDataSource1_Selected(object sender,
ObjectDataSourceStatusEventArgs e)
{
DataTable dt = (DataTable)e.ReturnValue;
int NumberOfRows = dt.Rows.Count;
TotalCount.Text = NumberOfRows.ToString();
DataView dv = new DataView(dt);
DataTable types = dv.ToTable(true, new string[] { "EXCEPTION_TYPE" });
DropDownList typeFilter = (DropDownList)GridView1.FindControl("TypeFilter");
typeFilter.DataSource = types;
typeFilter.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
您会注意到我正在尝试使用FindControl来获取对DropDownList控件的引用.此调用返回null而不是返回控件.如何访问控件?
首先,免责声明:我有其他语言的经验,但我仍在学习C#的微妙之处
关于问题...我正在看一些代码,它以一种让我关注的方式使用try/catch块.当调用解析例程而不是返回错误代码时,程序员使用以下逻辑
catch (TclException e) {
throw new TclRuntimeError("unexpected TclException: " + e.Message,e);
}
Run Code Online (Sandbox Code Playgroud)
这是由调用者捕获的,它抛出相同的错误......
由调用者捕获,它抛出相同的错误......
.....被调用者捕获,抛出同样的错误...
备份大约6个级别.
我认为所有这些catch/throw块都会导致性能问题,或者这是C#下的合理实现吗?
将datacontext设置为属性是否存在任何潜在问题:
知识库
public Repository()
{
public DataContext dc {get;set;}
public GetOrders(int id)
{ ...from dc.Orders...}
}
Run Code Online (Sandbox Code Playgroud)
服务层:
public GetNewOrders()
{
....
Repository rep=new Repository();
using {DataContext dc=new DataContext())
{
rep.dc=dc;
rep.GetOrders(id);
}
}
Run Code Online (Sandbox Code Playgroud) 我第一次在网站上如果标记错误或在其他地方得到回答,请道歉...
我一直在处理当前项目中的特定情况,我想知道你们如何处理它.模式是:父项具有子集合,父项具有对子集合中特定项的一个或多个引用,通常是"默认"子项.
一个更具体的例子:
public class SystemMenu
{
public IList<MenuItem> Items { get; private set; }
public MenuItem DefaultItem { get; set; }
}
public class MenuItem
{
public SystemMenu Parent { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
对我而言,这似乎是建立关系的一种很好的干净方式,但由于循环关联而立即导致问题,由于循环外键,我无法强制执行DB中的关系,并且LINQ to SQL因为循环关联.即使我能绕道而行,但这显然不是一个好主意.
我目前唯一的想法是在MenuItem上有一个'IsDefault'标志:
public class SystemMenu
{
public IList<MenuItem> Items { get; private set; }
public MenuItem DefaultItem
{
get
{
return Items.Single(x => x.IsDefault);
}
set
{
DefaultItem.IsDefault = false;
value.DefaultItem = true;
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我希望能够在运行时更改我的Swing应用程序中的语言环境,并让屏幕上的所有文本元素都使用新语言环境的ResourceBundle中的本地化文本进行更新.
这可以在不自定义swing组件或为处理渲染本地化文本的所有组件创建UIDelegates的情况下完成吗?
如果不是,那么我可以考虑实施什么是好的解决方案?
我们如何限制用户保存页面?
请提供一些禁用文件 - >保存和查看源选项的提示
编辑:显然它无法完成,也许不应该尝试.但是在这个问题上可能有一个更有趣的变体是我们如何才能让用户足够难以以可用的格式保存页面,这样他们这样做是不值得的呢?这个问题并没有带来任何价值,但是我们说我们正在保护一个文章订阅网站,用户每年支付几百美元来继续访问文本.
我有一大堆日志行,我需要解析每一行(因此效率非常重要).
每个日志行都是表单
cust_name time_start time_end(IP或URL)*
所以ip地址,时间,时间和一个可能是空的ip地址列表或用分号分隔的url.如果最后一个列表中只有ip或url,则没有分隔符.如果超过1,则用分号分隔.
我需要一种方法来解析这一行并将其读入数据结构.time_start或time_end可以是系统时间或GMT.cust_name也可以有多个以空格分隔的字符串.
我可以通过逐字符阅读并基本上编写自己的解析器来实现这一点.有一个更好的方法吗 ?
我正在使用Dave Brooks的MAPI代码.
我试图以编程方式发送生成的Crystal报表.
当我在没有线程的情况下运行代码时,一切运行正常.问题是当我使用线程时,我得到返回错误"General MAPI failure [2]".
我之前从未使用过线程,并且理解存在危险.任何人都可以对此问题提供任何见解吗?注意:我已删除异常处理以使代码更清晰.
Private Sub RunReport()
SetParameters()
SaveReportFile()
Dim operation As New ThreadStart(AddressOf SendEmail)
Dim theThread As New Thread(operation)
theThread.Start()
End Sub
Public Sub SendEmail()
Dim m As MAPI
m = New MAPI()
Dim email As String
For Each email In emailAddress
m.AddRecipientBCC(email)
Next email
m.AddAttachment(@"c:\temp\report.pdf")
m.SendMailPopup("Requested Report", "")
End Sub
Run Code Online (Sandbox Code Playgroud) 我试图弄清楚是否可以通过名称实例化和调用委托,而不是显式.我认为下面的代码解释得相当好....我想接受一个函数名,然后基于它实例化委托.在示例中,我使用了一个选择案例,但我想要消除它,只需使用methodName参数本身.
恭敬地......请避免告诉我这是疯狂的冲动,我应该采取一些完全不同的方法来解决这个问题.:)
Private Delegate Sub myDelegate()
Private Sub myDelegate_Implementation1()
'Some code
End Sub
Private Sub myDelegate_Implementation2()
'Some code
End Sub
Public Sub InvokeMethod(ByVal methodName As String)
Dim func As myDelegate = Nothing
'??? HOW TO GET RID OF THIS SELECT CASE BLOCK?:
Select Case methodName
Case "myDelegate_Implementation1"
func = AddressOf myDelegate_Implementation1
Case "myDelegate_Implementation2"
func = AddressOf myDelegate_Implementation2
End Select
func.Invoke()
End Sub
Run Code Online (Sandbox Code Playgroud)
谢谢基思,正是我想要的.(但在大多数情况下,BFree的方法也会起作用).
这是VB中的工作代码:
Public Delegate Sub xxxDelegate()
Sub xxxAnImplementation()
End Sub
Sub zzzDoIt(ByVal xxxImplementerName As String)
Dim theDelegate As …
Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×2
vb.net ×2
asp.net ×1
c++ ×1
catch-block ×1
datacontext ×1
delegates ×1
drm ×1
findcontrol ×1
java ×1
logging ×1
mapi ×1
modeling ×1
oop ×1
parsing ×1
performance ×1
restriction ×1
sha1 ×1
sql ×1
swing ×1
text-parsing ×1