我正在浏览一些代码,我遇到了这个宏定义
#define D(x) do { } while (0)
Run Code Online (Sandbox Code Playgroud)
它在像这样的代码中使用,
D(("couldn't identify user %s", user));
Run Code Online (Sandbox Code Playgroud)
我运行代码,并且该特定行没有做任何事情.那么,为什么有人会定义这样的宏呢?
如果您想知道,该宏是在_pam_macros.h头文件中定义的.
实现编辑操作时,我为Get和Post添加了两个方法:Edit(string id)
理想情况下,他们需要具有相同的签名.但当然这不可编辑.所以我在HttpPost方法中添加了一个伪参数(在我的例子中为form):
[HttpGet]
public ActionResult Edit(string id)
{
var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
return View(user);
}
[HttpPost]
public ActionResult Edit(string id, FormCollection form)
{
var user = Entities.Users.SingleOrDefault(s => s.UserID == id);
if (TryUpdateModel<User>(user, new[] { "Email", "FullName" }))
{
Entities.SaveChanges();
RedirectToAction("Index");
}
return View(user);
}
Run Code Online (Sandbox Code Playgroud)
任何更好/更清洁的方式来实现编辑操作?
如何实现SquishIt在View Pages中捆绑Css/Js并在Master页面中渲染它?我以为我可以在Render部分上方使用ContentPlaceHolder,但似乎有一些奇怪的行为,它有时会添加3个文件(视图页面中有1个文件,母版页中有2个文件)但是其他时候会忽略从View中添加的文件页.
的Index.aspx
<asp:Content ContentPlaceHolderID="CssFiles" runat="server">
<% CssHelper.Add("home.css"); %>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
的Site.Master
<asp:ContentPlaceHolder ID="CssFiles" runat="server" />
<% CssHelper.Add("reset.css"); %>
<% CssHelper.Add("master.css"); %>
<%=CssHelper.Render() %>
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是围绕SquishIt的静态Bundle类的静态包装器,它将BundleBuilder保存在HttpContext.Current.Items中.
我很好奇这是否已成功完成以及如何做到这一点.
这是我的情况:使用PHP和MySQL作为我的后端,jQuery和jsTree用于我的前端.
我的树在左侧,点击一个节点将触发某些信息加载到浮动到树右侧的框中.他们可以使用此行为添加/编辑/删除此树中的节点(无页面重新加载,所有Ajax).
目前,我可以成功地向树添加节点.我接受新节点的用户输入,如果一切都通过验证(客户端第一,服务器端第二),我的MySQL数据库中会添加一个新的"节点",然后我用一些Javascript动态更新jsTree通过向它的父节点添加一个新节点(在初始页面加载时,PHP正确地构建了一个带有无序列表和列表项的HTML树).
我的简单问题:如何使用列表项("LI")的"ID"属性向jsTree添加新节点?
作为参考,这是我的HTML树的样子.这是交给jsTree和它的HTML_DATA插件:
<ul>
<li class="plant" id="plant_3"><a href="javascript:void();">Plant Three</a>
</li>
<li class="plant" id="plant_1"><a href="javascript:void();">Plant One</a>
<ul>
<li class="area" id="area_2"><a href="javascript:void();">Area Two</a>
</li>
<li class="area" id="area_1"><a href="javascript:void();">Area One</a>
<ul>
<li class="building" id="building_1"><a href="javascript:void();">Building One</a>
<ul>
<li class="floor" id="floor_2"><a href="javascript:void();">1st Floor</a>
</li>
<li class="floor" id="floor_3"><a href="javascript:void();">2nd Floor</a>
</li>
<li class="floor" id="floor_1"><a href="javascript:void();">Ground Floor</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我的点击操作键入每个节点所拥有的唯一ID("plant_1","area_3"等).目前,当我添加一个jsTree节点时,我这样做(通过CRRM插件):
$("#my_tree").jstree("create", null, false, name, {attr : "id=plant_"+id}, true);
Run Code Online (Sandbox Code Playgroud)
#my_tree初始化为:
$("#my_tree").jstree({
"ui" : {
"select_limit" : 1,
"selected_parent_close" : …Run Code Online (Sandbox Code Playgroud) 我有自定义单元格渲染器,并希望删除单元格的边框.
我该怎么做?我试过setBorder但它不起作用.
这是我的渲染器代码:
public class MyTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = -1195682136616306875L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (!isSelected) {
if (row % 2 == 0 && row != 1) {
c.setBackground(new Color(255, 255, 150));
} else {
c.setBackground(Color.WHITE);
}
} else {
c.setBackground(new Color(255, 230, 255));
}
c.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
return c;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个项目取决于供应商控制的工件.此工件包含一些我依赖的类,以及一些较旧且导致问题的类.有没有办法让maven自动扩展jar,删除类,并将它们重新打包为依赖?我试着举个例子.
supplier:artifact:1.0.0
com.supplier.useful.ClassA
com.supplier.dto.ClassB (old)
us:dependency:1.1.20
com.supplier.dto.ClassB (new)
us:project-web:1.1.20
- supplier:artifact:1.0.0
- us:dependency:1.1.20
Run Code Online (Sandbox Code Playgroud)
所以 - 我需要ClassA在project-web中使用,但我需要使用ClassB来自dependency工件的.我无法修改供应商:工件,或我们:依赖.
有任何想法吗?!
我运行这个脚本:
define('SECRET', "vJs;ly-W\XDkD_2'-M7S2/ZRRBobxt5");
echo sha1(SECRET . 'zcbkeyky' . 'aaa@bbb.com') . "\n";
Run Code Online (Sandbox Code Playgroud)
在本地使用PHP 5.3.2(cli)它给了我:3baa47e50394cd2dce236dcbf2f409fdb9010f2a
在PHP 5.1.6(cli)的远程机器上它给出:d1bcf4ea83e50593d3df19a8455a5f5cd32d63ef
为什么相同的计算不同?
是否可以直接将 XML/HTML 文件存储在 SQLite 数据库中?
我正在用 python 编写一个程序,它应该解析 XML/HTML 文件并将值存储在数据库中。但是,XML/HTML 文件中的字段可能会有所不同,我认为将整个 XML/HTML 文件简单地存储在数据库中然后仅在使用时对其进行解析会更容易。
这可以用 python 和 SQLite 实现吗?还是我从错误的角度处理这个问题?
提前致谢!
编辑:任何人都可以分享有关如何存储文件的代码示例吗?我知道这是可能的,但我不确定如何去做。
我有一个表示dos路径的字符串变量,例如:
var = "d:\stuff\morestuff\furtherdown\THEFILE.txt"
我想将此字符串拆分为:
[ "d", "stuff", "morestuff", "furtherdown", "THEFILE.txt" ]
我已经尝试使用split()和replace(),但他们要么只处理第一个反斜杠或者插入十六进制数字串入.
我需要以某种方式将此字符串变量转换为原始字符串,以便我可以解析它.
最好的方法是什么?
我还应该补充一点,var即我试图解析的路径的内容实际上是命令行查询的返回值.这不是我自己生成的路径数据.它存储在一个文件中,命令行工具不会逃避反斜杠.
可能重复:
-DNDEBUG通常来自哪里?
我在我的代码中使用断言,但我不知道它们是否会触发,因为我不知道是否定义了NDEBUG.我是否应该在编译期间明确指定-DNDEBUG?